{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "%matplotlib inline\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Titanic data + random columns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "titanic_url = ('https://raw.githubusercontent.com/amueller/'\n",
    "               'scipy-2017-sklearn/091d371/notebooks/datasets/titanic3.csv')\n",
    "titanic = pd.read_csv(titanic_url)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "rng = np.random.RandomState(42)\n",
    "titanic['random_cat'] = rng.randint(3, size=titanic.shape[0])\n",
    "titanic['random_num'] = rng.randn(titanic.shape[0])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>pclass</th>\n",
       "      <th>survived</th>\n",
       "      <th>age</th>\n",
       "      <th>sibsp</th>\n",
       "      <th>parch</th>\n",
       "      <th>fare</th>\n",
       "      <th>body</th>\n",
       "      <th>random_cat</th>\n",
       "      <th>random_num</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>1309.000000</td>\n",
       "      <td>1309.000000</td>\n",
       "      <td>1046.000000</td>\n",
       "      <td>1309.000000</td>\n",
       "      <td>1309.000000</td>\n",
       "      <td>1308.000000</td>\n",
       "      <td>121.000000</td>\n",
       "      <td>1309.000000</td>\n",
       "      <td>1309.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>2.294882</td>\n",
       "      <td>0.381971</td>\n",
       "      <td>29.881135</td>\n",
       "      <td>0.498854</td>\n",
       "      <td>0.385027</td>\n",
       "      <td>33.295479</td>\n",
       "      <td>160.809917</td>\n",
       "      <td>0.977082</td>\n",
       "      <td>0.071915</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>0.837836</td>\n",
       "      <td>0.486055</td>\n",
       "      <td>14.413500</td>\n",
       "      <td>1.041658</td>\n",
       "      <td>0.865560</td>\n",
       "      <td>51.758668</td>\n",
       "      <td>97.696922</td>\n",
       "      <td>0.820845</td>\n",
       "      <td>0.990013</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.166700</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>-2.940389</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>2.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>21.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>7.895800</td>\n",
       "      <td>72.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>-0.601368</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>3.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>28.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>14.454200</td>\n",
       "      <td>155.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.066991</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>3.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>39.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>31.275000</td>\n",
       "      <td>256.000000</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>0.709004</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>3.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>80.000000</td>\n",
       "      <td>8.000000</td>\n",
       "      <td>9.000000</td>\n",
       "      <td>512.329200</td>\n",
       "      <td>328.000000</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>3.193108</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            pclass     survived          age        sibsp        parch  \\\n",
       "count  1309.000000  1309.000000  1046.000000  1309.000000  1309.000000   \n",
       "mean      2.294882     0.381971    29.881135     0.498854     0.385027   \n",
       "std       0.837836     0.486055    14.413500     1.041658     0.865560   \n",
       "min       1.000000     0.000000     0.166700     0.000000     0.000000   \n",
       "25%       2.000000     0.000000    21.000000     0.000000     0.000000   \n",
       "50%       3.000000     0.000000    28.000000     0.000000     0.000000   \n",
       "75%       3.000000     1.000000    39.000000     1.000000     0.000000   \n",
       "max       3.000000     1.000000    80.000000     8.000000     9.000000   \n",
       "\n",
       "              fare        body   random_cat   random_num  \n",
       "count  1308.000000  121.000000  1309.000000  1309.000000  \n",
       "mean     33.295479  160.809917     0.977082     0.071915  \n",
       "std      51.758668   97.696922     0.820845     0.990013  \n",
       "min       0.000000    1.000000     0.000000    -2.940389  \n",
       "25%       7.895800   72.000000     0.000000    -0.601368  \n",
       "50%      14.454200  155.000000     1.000000     0.066991  \n",
       "75%      31.275000  256.000000     2.000000     0.709004  \n",
       "max     512.329200  328.000000     2.000000     3.193108  "
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "titanic.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>pclass</th>\n",
       "      <th>survived</th>\n",
       "      <th>name</th>\n",
       "      <th>sex</th>\n",
       "      <th>age</th>\n",
       "      <th>sibsp</th>\n",
       "      <th>parch</th>\n",
       "      <th>ticket</th>\n",
       "      <th>fare</th>\n",
       "      <th>cabin</th>\n",
       "      <th>embarked</th>\n",
       "      <th>boat</th>\n",
       "      <th>body</th>\n",
       "      <th>home.dest</th>\n",
       "      <th>random_cat</th>\n",
       "      <th>random_num</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>Allen, Miss. Elisabeth Walton</td>\n",
       "      <td>female</td>\n",
       "      <td>29.0000</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>24160</td>\n",
       "      <td>211.3375</td>\n",
       "      <td>B5</td>\n",
       "      <td>S</td>\n",
       "      <td>2</td>\n",
       "      <td>NaN</td>\n",
       "      <td>St Louis, MO</td>\n",
       "      <td>2</td>\n",
       "      <td>-1.110576</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>Allison, Master. Hudson Trevor</td>\n",
       "      <td>male</td>\n",
       "      <td>0.9167</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>113781</td>\n",
       "      <td>151.5500</td>\n",
       "      <td>C22 C26</td>\n",
       "      <td>S</td>\n",
       "      <td>11</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Montreal, PQ / Chesterville, ON</td>\n",
       "      <td>0</td>\n",
       "      <td>1.752270</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>Allison, Miss. Helen Loraine</td>\n",
       "      <td>female</td>\n",
       "      <td>2.0000</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>113781</td>\n",
       "      <td>151.5500</td>\n",
       "      <td>C22 C26</td>\n",
       "      <td>S</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Montreal, PQ / Chesterville, ON</td>\n",
       "      <td>2</td>\n",
       "      <td>0.935678</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>Allison, Mr. Hudson Joshua Creighton</td>\n",
       "      <td>male</td>\n",
       "      <td>30.0000</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>113781</td>\n",
       "      <td>151.5500</td>\n",
       "      <td>C22 C26</td>\n",
       "      <td>S</td>\n",
       "      <td>NaN</td>\n",
       "      <td>135.0</td>\n",
       "      <td>Montreal, PQ / Chesterville, ON</td>\n",
       "      <td>2</td>\n",
       "      <td>1.271555</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>Allison, Mrs. Hudson J C (Bessie Waldo Daniels)</td>\n",
       "      <td>female</td>\n",
       "      <td>25.0000</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>113781</td>\n",
       "      <td>151.5500</td>\n",
       "      <td>C22 C26</td>\n",
       "      <td>S</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Montreal, PQ / Chesterville, ON</td>\n",
       "      <td>0</td>\n",
       "      <td>0.721672</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>Anderson, Mr. Harry</td>\n",
       "      <td>male</td>\n",
       "      <td>48.0000</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>19952</td>\n",
       "      <td>26.5500</td>\n",
       "      <td>E12</td>\n",
       "      <td>S</td>\n",
       "      <td>3</td>\n",
       "      <td>NaN</td>\n",
       "      <td>New York, NY</td>\n",
       "      <td>0</td>\n",
       "      <td>-1.129052</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>Andrews, Miss. Kornelia Theodosia</td>\n",
       "      <td>female</td>\n",
       "      <td>63.0000</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>13502</td>\n",
       "      <td>77.9583</td>\n",
       "      <td>D7</td>\n",
       "      <td>S</td>\n",
       "      <td>10</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Hudson, NY</td>\n",
       "      <td>2</td>\n",
       "      <td>-0.524520</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>Andrews, Mr. Thomas Jr</td>\n",
       "      <td>male</td>\n",
       "      <td>39.0000</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>112050</td>\n",
       "      <td>0.0000</td>\n",
       "      <td>A36</td>\n",
       "      <td>S</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Belfast, NI</td>\n",
       "      <td>1</td>\n",
       "      <td>0.489375</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>Appleton, Mrs. Edward Dale (Charlotte Lamson)</td>\n",
       "      <td>female</td>\n",
       "      <td>53.0000</td>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "      <td>11769</td>\n",
       "      <td>51.4792</td>\n",
       "      <td>C101</td>\n",
       "      <td>S</td>\n",
       "      <td>D</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Bayside, Queens, NY</td>\n",
       "      <td>2</td>\n",
       "      <td>-1.222128</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>Artagaveytia, Mr. Ramon</td>\n",
       "      <td>male</td>\n",
       "      <td>71.0000</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>PC 17609</td>\n",
       "      <td>49.5042</td>\n",
       "      <td>NaN</td>\n",
       "      <td>C</td>\n",
       "      <td>NaN</td>\n",
       "      <td>22.0</td>\n",
       "      <td>Montevideo, Uruguay</td>\n",
       "      <td>2</td>\n",
       "      <td>0.712998</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   pclass  survived                                             name     sex  \\\n",
       "0       1         1                    Allen, Miss. Elisabeth Walton  female   \n",
       "1       1         1                   Allison, Master. Hudson Trevor    male   \n",
       "2       1         0                     Allison, Miss. Helen Loraine  female   \n",
       "3       1         0             Allison, Mr. Hudson Joshua Creighton    male   \n",
       "4       1         0  Allison, Mrs. Hudson J C (Bessie Waldo Daniels)  female   \n",
       "5       1         1                              Anderson, Mr. Harry    male   \n",
       "6       1         1                Andrews, Miss. Kornelia Theodosia  female   \n",
       "7       1         0                           Andrews, Mr. Thomas Jr    male   \n",
       "8       1         1    Appleton, Mrs. Edward Dale (Charlotte Lamson)  female   \n",
       "9       1         0                          Artagaveytia, Mr. Ramon    male   \n",
       "\n",
       "       age  sibsp  parch    ticket      fare    cabin embarked boat   body  \\\n",
       "0  29.0000      0      0     24160  211.3375       B5        S    2    NaN   \n",
       "1   0.9167      1      2    113781  151.5500  C22 C26        S   11    NaN   \n",
       "2   2.0000      1      2    113781  151.5500  C22 C26        S  NaN    NaN   \n",
       "3  30.0000      1      2    113781  151.5500  C22 C26        S  NaN  135.0   \n",
       "4  25.0000      1      2    113781  151.5500  C22 C26        S  NaN    NaN   \n",
       "5  48.0000      0      0     19952   26.5500      E12        S    3    NaN   \n",
       "6  63.0000      1      0     13502   77.9583       D7        S   10    NaN   \n",
       "7  39.0000      0      0    112050    0.0000      A36        S  NaN    NaN   \n",
       "8  53.0000      2      0     11769   51.4792     C101        S    D    NaN   \n",
       "9  71.0000      0      0  PC 17609   49.5042      NaN        C  NaN   22.0   \n",
       "\n",
       "                         home.dest  random_cat  random_num  \n",
       "0                     St Louis, MO           2   -1.110576  \n",
       "1  Montreal, PQ / Chesterville, ON           0    1.752270  \n",
       "2  Montreal, PQ / Chesterville, ON           2    0.935678  \n",
       "3  Montreal, PQ / Chesterville, ON           2    1.271555  \n",
       "4  Montreal, PQ / Chesterville, ON           0    0.721672  \n",
       "5                     New York, NY           0   -1.129052  \n",
       "6                       Hudson, NY           2   -0.524520  \n",
       "7                      Belfast, NI           1    0.489375  \n",
       "8              Bayside, Queens, NY           2   -1.222128  \n",
       "9              Montevideo, Uruguay           2    0.712998  "
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "titanic.head(10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "categorical_columns = ['pclass', 'sex', 'embarked', 'random_cat']\n",
    "numerical_columns = ['age', 'sibsp', 'parch', 'fare', 'random_num']\n",
    "\n",
    "data = titanic[categorical_columns + numerical_columns]\n",
    "labels = titanic['survived']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.model_selection import train_test_split\n",
    "\n",
    "\n",
    "X_train, X_test, y_train, y_test = train_test_split(\n",
    "    data, labels, stratify=labels, random_state=42)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Building a Feature Engineering Pipeline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.ensemble import RandomForestClassifier\n",
    "from sklearn.impute import SimpleImputer\n",
    "from sklearn.model_inspection import permutation_importance\n",
    "from sklearn.compose import ColumnTransformer\n",
    "from sklearn.pipeline import Pipeline\n",
    "from sklearn.preprocessing import OneHotEncoder\n",
    "\n",
    "categorical_pipe = Pipeline([\n",
    "    ('imputer', SimpleImputer(strategy='constant', fill_value='missing')),\n",
    "    ('onehot', OneHotEncoder(handle_unknown='ignore')),\n",
    "])\n",
    "numerical_pipe = Pipeline([\n",
    "    ('imputer', SimpleImputer(strategy='mean')),\n",
    "    # no scaler needed for random forests\n",
    "])\n",
    "\n",
    "preprocessing = ColumnTransformer(\n",
    "    [('cat', categorical_pipe, categorical_columns),\n",
    "     ('num', numerical_pipe, numerical_columns)])\n",
    "\n",
    "rf = Pipeline([\n",
    "    ('preprocess', preprocessing),\n",
    "    ('classifier', RandomForestClassifier(n_estimators=100,\n",
    "                                          min_samples_leaf=1,\n",
    "                                          random_state=42))\n",
    "])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 128 ms, sys: 4 ms, total: 132 ms\n",
      "Wall time: 128 ms\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "Pipeline(memory=None,\n",
       "         steps=[('preprocess',\n",
       "                 ColumnTransformer(n_jobs=None, remainder='drop',\n",
       "                                   sparse_threshold=0.3,\n",
       "                                   transformer_weights=None,\n",
       "                                   transformers=[('cat',\n",
       "                                                  Pipeli...                       min_samples_leaf=1, min_samples_split=2,\n",
       "                                        min_weight_fraction_leaf=0.0,\n",
       "                                        n_estimators=100, n_jobs=None,\n",
       "                                        oob_score=False, random_state=42,\n",
       "                                        verbose=0, warm_start=False))])"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "%%time\n",
    "rf.fit(X_train, y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "RF train accuracy: 1.000\n",
      "RF test accuracy: 0.817\n"
     ]
    }
   ],
   "source": [
    "print(\"RF train accuracy: %0.3f\" % rf.score(X_train, y_train))\n",
    "print(\"RF test accuracy: %0.3f\" % rf.score(X_test, y_test))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Tree-based Feature Importances"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 864x576 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "ohe = (rf.named_steps['preprocess']\n",
    "         .named_transformers_['cat']\n",
    "         .named_steps['onehot'])\n",
    "feature_names = []\n",
    "for col, cats in zip(categorical_columns, ohe.categories_):\n",
    "    for cat in cats:\n",
    "        feature_names.append(\"{}_{}\".format(col, cat))\n",
    "feature_names = np.array(feature_names + numerical_columns)\n",
    "\n",
    "tree_feature_importances = (\n",
    "    rf.named_steps['classifier'].feature_importances_)\n",
    "sorted_idx = tree_feature_importances.argsort()\n",
    "\n",
    "y_ticks = np.arange(0, len(feature_names))\n",
    "_, ax = plt.subplots(figsize=(12, 8))\n",
    "ax.barh(y_ticks, tree_feature_importances[sorted_idx])\n",
    "ax.set_yticklabels(feature_names[sorted_idx])\n",
    "ax.set_yticks(y_ticks)\n",
    "ax.set_title(\"Random Forest Feature Importances\");"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Permutation-based Feature Importances (training set)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 864x576 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "permute_importance = permutation_importance(rf, X_train, y_train, n_rounds=30,\n",
    "                                            random_state=42)\n",
    "permute_importance_mean = np.mean(permute_importance, axis=-1)\n",
    "sorted_idx = permute_importance_mean.argsort()\n",
    "\n",
    "_, ax = plt.subplots(figsize=(12, 8))\n",
    "ax.boxplot(permute_importance[sorted_idx].T,\n",
    "           vert=False, labels=X_test.columns[sorted_idx])\n",
    "ax.vlines(0, 0, X_test.shape[1] + 1, linestyles='dashed', alpha=0.5)\n",
    "ax.set_xlabel(\"baseline score - score on permutated variable\")\n",
    "ax.set_title(\"Permutation Importances (training set)\");"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Permutation-based Feature Importances (test set)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAvgAAAHwCAYAAADTmRsTAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4wLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvqOYd8AAAIABJREFUeJzs3X+cVnWd9/H3O9EEFZwBkkwQuVNSyKwGTTN/rGxRaaW1WukW5C53W5t1t7VbS5tY2S/Xu1VrtyhjKshgC0xww5T8kb8SVBQI0W7UqMQEJlBRA/3cf1zfyYtxhrmGueacub7zej4e5zHnOtf3fM/nnDMD7znzPedyRAgAAABAHl5UdgEAAAAA6oeADwAAAGSEgA8AAABkhIAPAAAAZISADwAAAGSEgA8AAABkhIAPAA3G9hO2x5VdB3Zm+3/b/o+y6+gN2x+x/ZWy6wDQOwR8ANmx/ZDtp1IQftR2q+19y65LkmyH7Zf3oP0Ntv+uellE7BsR6/qgtodsT653v7ujs/3uz2zvJekzki5Kr8emcz2oDn232v5Cb/vppN+TbP+uw+JvSzrb9kvqvT0AxSHgA8jVaRGxr6TXSGpRJXz1SD3CGXrGFY34f9PbJd0XEb8vu5DeiIinJf1M0vvKrgXA7mvEf0QBoGYpcP1M0kRJsj3M9uW2H7H9e9tfsL1Hem+q7Vtsf832JkkzOyz7k+11to9Ly9fb/qPt97dvr+OV59Tu5jR/U1p8T/rrwlm2m2wvtv2Y7bY0f1Bqf6GkN0j6emr/9bT8L38FSPvz/bT+w7Y/0x6Q27dt+99T3w/afnMtx2039rvV9jdtX2v7cds32j646v3jbC+zvSV9Pa7DMbvQ9i2Stkn6QRf7fUna9lbbd9p+Q1UfM23PT8ficdurbbdUvT/a9oJ0nDa195ne+4DtNekYXdNed/pl42tpX7faXml7YheH7M2Sbqx63X6u/5T24djd2Zbt6ZLOlvTPqZ9FnZyrLuu0/eJ0/n/ryl+zvml7sO19VPm5ODD1+4TtA1OXN0h6axf7CaABEPABZM32aElvkXR3WtQqaYekl0t6taQ3SqoeCnKMpHWSDpB0YdWyeyUNl/RDST+SNCn1cY4qQbTbIUARcUKafVUaZjNPlX+HZ0s6WNIYSU9J+npqP0PSLyX9Y2r/j510e5mkYZLGSTpRlSuv0zrsz1pJIyR9VdLltt1drbu532dL+nza1gpJcyXJdrOkqyVdmvr6v5Kutj28at2/lTRd0n6Spnax38skHSWpOdXz37b3rurjbanG/SVdpXQcXfkFbrGkhyWNlfSy1E623y7pXyWdIWlk2u4Vqb83SjpB0mGqHOMzJW3q4li9UpXj3K79XO+f9uG23dlWRMxKx/GrqZ/TOtn2rur8clp+lCrn7WWSPhsRT6ryS8kfUr/7RsQf0jprJL2qi/0E0AAI+ABydaXtP0m6WZUrq1+0fYAqYf9jEfFkRPxR0tckvbtqvT9ExGURsSMinkrLHoyI2RHxrKR5kkZL+lxEPBMRP5f0Z1XCU49FxKaI+ElEbIuIx1X5peLEWtZNwfXdkj4dEY9HxEOSLlYlLLd7OCK+nWr/nqSXqvLLSy16ut9XR8RNEfGMpBmSjk2/YL1V0gMR8YN0XK+QdJ+k6rDaGhGr0/vbOysmIuak47UjIi6W9GJJ46ua3BwR/5Pq/YGeD6lHSzpQ0ifTeX86Im5O731Q0pciYk1E7JD0RUlHpSvr21X5heMVkpzaPNLFsdpf0uO7PJr121ZHna6bfpGbLun/RMTm9P31Re38/d6Zx1X5RQFAgyLgA8jVOyJi/4g4OCI+lML6wZL2lPRIGnbyJ0nfklR9Q+H6Tvp6tGr+KUmKiI7LdusmXttDbH8rDa/ZqsrQjv1TeO/OCFX25+GqZQ+rcpW23Yb2mYjYlmZrrbWn+/2XYxcRT0jarEqwPrBDjZ3V2dlx34ntT6ThLVvSuRumyjFot6FqfpukvV25j2K0Kr/o7Oik24MlXVL1/bBZkiW9LCJ+ocpfAb4h6Y+2Z9ke2kV5baqE7F2p17Z2sot1R0oaIunOqm0uSct3ZT9JW2rZNoD+iYAPYCBZL+kZSSNS+N8/IoZGxISqNtHLbTypSqhqN6qb9v+kylXoYyJiqJ4f2tE+jGZX9WxU5ertwVXLxkgq60bP0e0zaehOs6Q/pOngDm071tlxP3d6ncbb/7Mqw0+aImJ/VUJoLcON1ksa485vml4v6X9XfT/sHxGDI+JWSYqISyPitZKOUGWoyye72Ma96f2u9qc32+r2e7KLdTeq8kvYhKrtDUs3n++q38Ml3dPdNgH0XwR8AANGGvLwc0kX2x5q+0W2/5ftmobE1GiFpDPSlfmXSzq3w/uPqjJevt1+qoSwP6Wx6ud30/4v0lCU+ZIutL1fGurxcUlzer8bu+Utto935ZGRn5d0e0Ssl/Q/kg6z/V7bg2yfpUoQXbyLvjo7TjskPSZpkO3PSqrpCrekOyQ9IunLtvexvbft16f3vinp07YnSH+5aflv0vwk28fY3lOVX9yelvRcF9v4H+08tOqx1LZ6H3Z3W11+D+xq3Yh4TpXHXn7N6bGXtl9m+01V/Q633XE4zomq3IALoEER8AEMNO+TtJekX6syrOLHqoxLr5evqTI2/VFVxrzP7fD+TEnfS0MmzpT0H5IGq3K19XZVhlBUu0TSu9JTVy7tZHsfUSXUrVPlfoMfSvpufXalx36oyi8omyW9VpUbcRURmySdqspfKzapciX+1IjYuIu+Ou73Naocm/tVGd7ztGoY1pO2/6wq4/1fLum3kn4n6az03kJJX5H0ozREapUqN59KlV8gvq3K98nDqfaLutjMIkmvaH8STRoOdaGkW9K5fl0vtnW5pCNSP1d2su1drfsvkn4j6fa0zeuU7luIiPtUucl3Xer7wHTT8ltU+d4F0KAc0du/RgMABjrbrZJ+FxE9/ryBXKRHWh4RER8ru5bdZfsjkkZHxD+XXQuA3ceHuAAAUAfpkZYNLSIuK7sGAL3HEB0AAAAgIwzRAQAAADLCFXwAAAAgIwR8AAAAICPcZNtLI0aMiLFjx5ZdBjqxdetWSdLQobU+KhsAAKD/uvPOOzdGRHefRk3A762xY8dq+fLlZZeBTrS2tkqSpk6dWmodAAAA9WD74VraMUQHAAAAyAgBHwAAAMgIAR8AAADICGPwkS1urgUAAAMRAR/ZOuOMM8ouAQAAoHAM0QEAAAAyQsBHtpYsWaIlS5aUXQYAAEChGKKDbG3YsKHsEgAAAArHFXwAAAAgIwR8AAAAICMEfAAAgN3Q3Nws2w03aeawXvfR3Nxc9uHHLjAGH9kaPnx42SUAADLW1tamiCi7jJ6bOazXdduuUzHoCwR8ZOu0004ruwQAAIDCMUQHAAAAyAgBH9latGiRFi1aVHYZAAAAhWKIDrK1adOmsksAAAAoHFfwAQBAqbhhE42kEb5fCfgAAABARgj4AAAAQEYYg49sjRo1quwSAAAACjcgAr7tfSTNl3SQpD0kfV7SbyT9X0n7StooaaqkxyTdJumTEXGD7S9Jei4iZpRRN3pnypQpZZcAAABQuAER8CVNkfSHiHirJNkeJulnkt4eEY/ZPkvShRHxAdtTJf3Y9kfSeseUVTQAAADQUwMl4K+UdLHtr0haLKlN0kRJ16Y7ofeQ9IgkRcRq2z9I7Y6NiD937Mz2dEnTJWnMmDGF7AB6bsGCBZKkM844o+RKAADdaYQnk2BnnLP+a0AE/Ii43/ZrJL1F0hck/ULS6og4totVXinpT5Je0kV/syTNkqSWlpaof8Woh61bt5ZdAgCgRhGN99/pQA+4jXjO6qERzvuAeIqO7QMlbYuIOZIuUmXYzUjbx6b397Q9Ic2fIalZ0gmSLrO9f0llAwAAAD02IK7gq3JF/iLbz0naLukfJO2QdGkajz9I0n/YflTSlyWdEhHrbX9d0iWS3l9S3QAAAECPDIiAHxHXSLqmk7dO6GTZYVXrXdpnRQEAAAB9YEAEfAxMBx10UNklAAAAFI6Aj2xNnjy57BIAAAAKNyBusgUAAP3XQH0aCxpTI3y/EvCRrXnz5mnevHlllwEAAFAohuggW0899VTZJQAAABSOK/gAAABARgj4AAAAQEYYogMAALCbbJddQo/F+UN7XXdTU1OdqkFfIOAjW4ccckjZJQAAMtYIT1PpSswsuwL0JQI+snXiiSeWXQIAAEDhGIMPAAAAZISAj2zNmTNHc+bMKbsMAACAQjFEB9nasWNH2SUAAAAUjiv4AAAAQEYI+AAAAEBGCPgAAABARhiDj2wddthhZZcAAABQOAI+snXccceVXQIAAEDhGKIDAAAAZISAj2y1traqtbW17DIAAAAKRcAHAAAAMkLABwAAADJCwAcAAAAyQsAHAAAAMsJjMpGtCRMmlF0CAABA4Qj4yNakSZPKLgEAAKBwDNFBtrZv367t27eXXQYAAEChCPjI1ty5czV37tyyywAAACgUAR8AAADICAEfAAAAyAgBHwAAAMgIAR9AQ2lubpbtukyaOawu/TQ3N5d9WAAA+Asek4lsHXXUUWWXgD7Q1tamiKhPZzOH1aUv23UoBgCA+iDgI1sEfAAAMBAxRAfZ2rZtm7Zt21Z2GQAAAIUi4CNb8+fP1/z588suAwAAoFAEfAAAACAjBHwA3CTaADhHAIBaEfABAACAjBDwAQAAgIxk+5hM2ydJ+kREnFp2LShHS0tL2SUAAAAULtuAD0ycOLHsEgAAAArXUEN0bI+1fZ/tubbX2P6x7SG2J9m+1fY9tu+wvV+H9Y62fZvtu1O78Wn5hNR+he17bR9qex/bV6e+Vtk+q5y9RW9t2bJFW7ZsKbsMAACAQjXiFfzxks6NiFtsf1fSP0r6oKSzImKZ7aGSnuqwzn2S3hARO2xPlvRFSe9M610SEXNt7yVpD0lvkfSHiHirJNke1rEA29MlTZekMWPG9MlOovcWLlwoSZo6dWq5hTQIntLSOxw/AEB/0YgBf31E3JLm50iaIemRiFgmSRGxVXrBf7bDJH3P9qGSQtKeafltkmbYPkjSgoh4wPZKSRfb/oqkxRHxy44FRMQsSbMkqaWlJeq9g0AZIhrjW7m/Bum+Pn79db8BAP1PQw3RSTr+L7q1hnU+L+n6iJgo6TRJe0tSRPxQ0ttUueL/P7b/KiLul/QaSSslfcH2Z+tWOQAAANDHGjHgj7F9bJp/r6TbJb3U9iRJsr2f7Y5/mRgm6fdpfmr7QtvjJK2LiEsl/VTSkbYPlLQtIuZIukiVsA8AAAA0hEYM+Gslfdj2GklNki6TdJaky2zfI+lapSv0Vb4q6Uu279bOw5LOlLTK9gpJEyV9X9IrJd2Rlp0v6Qt9uTMAAABAPTXiGPwdEXFOh2XLJL2uw7Ib0qSIuE3SYVXvfSYt/7KkL3dY75o0ocEde+yx3TcCAADITCMGfKAm48ePL7sEAACAwjVUwI+Ih1QZSgN0a+PGjZKkESNGlFxJ/9coT9AZyDhHAIBaNeIYfKAmixcv1uLFi8suAwAAoFAEfAAAACAjBHwAAAAgIwR8AAAAICMEfAANx3Zdpnr11dTUVPIRAQDgeQ31FB2gJ0444YSyS0AfqPfTZGJmXbsDAKB0BHxka9y4cWWXAAAAUDiG6CBbGzZs0IYNG8ouAwAAoFAEfGRryZIlWrJkSdllAAAAFIqADwAAAGSEgA8AAABkhIAPAAAAZISADwAAAGSEx2QiW6ecckrZJQAAABSOgI9sjR49uuwSAAAACscQHWRr/fr1Wr9+fdllAAAAFIqAj2wtXbpUS5cuLbsMAACAQhHwAQAAgIwQ8AEAAICMEPABAACAjBDwAQAAgIzwmExka8qUKWWXAAAAUDgCPrI1atSosksAAAAoHEN0kK1169Zp3bp1ZZcBAABQKK7gI1s33XSTJGncuHElVwIAAFAcruADAAAAGSHgAwAAABkh4AMAAAAZIeADAAAAGeEmW2Tr1FNPLbuETjU3N6utra0ufcX5Q+ULttalr3ZNTU3avHlzXfsEAADFIeAjWyNGjCi7hE61tbUpIurT2cxh9esrsV3X/gAAQLEYooNsrV27VmvXri27DAAAgEJxBR/Zuu222yRJ48ePL7kSAACA4nAFHwAAAMgIAR8AAADICAEfDYUbQPPDOQUAoL4I+AAAAEBGuMkW2Tr99NPLLgEAAKBwBHxka9iwYWWXAAAAULjsh+jYvtL2nbZX256elp1r+37bd9j+tu2vp+Ujbf/E9rI0vb7c6tEbq1at0qpVq8ouAwAAoFAD4Qr+ByJis+3BkpbZvlrSv0l6jaTHJf1C0j2p7SWSvhYRN9seI+kaSYeXUTR6b/ny5ZKkiRMnllwJAABAcQZCwD/Pdvtg7NGS/lbSjRGxWZJs/7ekw9L7kyUdUfVUj6G2942IJ6o7TH8JmC5JY8aM6ePy0VFPn7oybdq0PqokXzzZBgCAxpV1wLd9kiqh/diI2Gb7Bkn3qeur8i+S9LqIeHpX/UbELEmzJKmlpSXqVjBqElHbIW9tbZUkTZ06te+K2Q2NEJ5rPcb10AjHAwCARpL7GPxhktpSuH+FpNdJ2kfSibabbA+S9M6q9j+X9JH2F7aPKrRaAAAAoJdyD/hLJA2yvUbSlyXdLun3kr4o6Q5Jt0h6SNKW1P48SS2277X9a0kfLLxiAAAAoBeyHqITEc9IenPH5baXR8SsdAV/oaQrU/uNks4qtkr0lTPPPLPsEgAAAAqXdcDfhZm2J0vaW5VhOVeWXA/6wJAhQ8ouAQAAoHADMuBHxCfKrgF9b8WKFZKko47iVgoAADBw5D4GH5npydNdVqxY8ZeQj/6ryCf2AAAwEBDwAQAAgIwQ8AEAAICMEPABAACAjBDwAQAAgIwMyKfoYGA4++yzyy6hS7br0k+cP7RufbVramqqa38AAKBYBHxka8899yy7hE7V+6kxMbOu3QEAgAbHEB1ka9myZVq2bFnZZQAAABSKgI9srV69WqtXry67DAAAgEIR8AEAAICMEPABAACAjBDwAQAAgIwQ8AEAAICM8JhMZGvq1KlllwAAAFA4ruADAAAAGSHgI1u33nqrbr311rLLAAAAKBQBH9m6//77df/995ddBgAAQKEI+AAAAEBGCPgAAABARgj4AAAAQEZ4TCayNWgQ394AAGDgIQEhW+ecc07ZJQAAABSOIToAAABARgj4yNaNN96oG2+8sewyAAAACkXAR7YefPBBPfjgg2WXAQAAUCgCPgAAAJARAj4AAACQEQI+AAAAkBEek4lsDR48uOwSAAAACkfAR7bOOuusuvbX3Nystra2FyyP84fKF2ztdf9NTU3avHlzr/sBAAADG0N0gBq1tbUpIl4wSep0eU+nzn55AAAA6CkCPrJ13XXX6brrriu7DAAAgEIxRAfZ+t3vfld2CQAAAIXjCj4AAACQEQI+AAAAkBECPhqK7bJLKMVA3W8AANBzjMFHtoYOHVp2CQAAAIXrtwHf9lRJLRHxj73o46HUx8Yyto9ynXHGGWWXAAAAULhsh+jY3qPsGgAAAICi9XnAt32O7Ttsr7D9Ldt72H7C9kW2V9u+zvbRtm+wvc7226pWH52WP2D7/Ko+r7R9Z1p/etXyJ2xfbPseScdWLR9s+2e2/76rmtLyabbvt32HpNf39bFB31qyZImWLFlSdhkAAACF6tOAb/twSWdJen1EHCXpWUlnS9pH0i8iYoKkxyV9QdJfSzpd0uequjha0jslHSnpb2y3pOUfiIjXSmqRdJ7t4Wn5PpJ+FRGvioib07J9JS2SdEVEfLurmmy/VNIFqgT74yUdUefDgYJt2LBBGzZsKLsMAACAQvX1GPxTJL1W0rL0FJDBkv4o6c+S2i+trpT0TERst71S0tiq9a+NiE2SZHuBKsF7uSqh/vTUZrSkQyVtUiWs/6RDDT+V9NWImNtNTcdIuiEiHkvbmyfpsM52Kv3VYLokjRkzpvajgbro6RNlpk2b1keV1B9PywEAAL3V1wHfkr4XEZ/eaaH9iYiI9PI5Sc9IUkQ8Z7u6ptDOwvZJkiZLOjYittm+QdLe6f2nI+LZDuvcImmK7R+mbXZV0ztq3amImCVpliS1tLR0rBF97PlvnV1rbW2VJE2dOrUu2y0ifHe1bwR/AABQq74eg79U0rtsv0SSbDfbPrgH6/91WmewpHeoEtaHSWpL4f4Vkl7XTR+fldQm6Rvd1PQrSSfaHm57T0l/04M6AQAAgH6hTwN+RPxa0mck/dz2vZKulfTSHnRxhypDbu6V9JOIWK7K0J5BttdI+rKk22vo56OSBtv+alc1RcQjkmZKuk2VXyTW9KBO9EPDhw/X8OHDu28IAACQEdc63AGda2lpieXLl5ddxoBhu+YhOoVte+YwaeaWvuu/m/cAAMDAYPvOiGjprl22z8EHAAAABiICPrK1aNEiLVq0qOwyAAAACtXXT9EB6qonw1Q2bdrUh5UUi+E5AACgVlzBBwAAADJCwAcAAAAyQsAHAAAAMsIYfGRr1KhRZZcAAABQOAI+sjVlypS692n7Bcvi/KGdLu+ppqamXvcBAABAwAdqtKsn2cTM4uoAAADYFcbgI1sLFizQggULyi4DAACgUFzBR7a2bt1adgkAAACF4wo+AAAAkBECPgAAAJARAj4AAACQEcbgI1sHHXRQ2SUAAAAUjoCPbE2ePLnsEgAAAArHEB0AAAAgIwR8ZGvevHmaN29e2WUAAAAUiiE6yNZTTz1VdgkAAACF4wo+AAAAkBECPgAAAJARAj4AAACQEcbgI1uHHHJI2SUAAAAUjoCPbJ144olllwAAAFA4hugAAAAAGSHgI1tz5szRnDlzyi4DAACgUAzRQbZ27NhRdgkAAACF4wo+AAAAkBECPgAAAJARAj4AAACQEcbgI1uHHXZY2SUAAAAUjoCPbB133HHdtmlublZbW1uvthPnD5Uv2NqrPiSpqalJmzdv7nU/AABgYGOIDga0trY2RUSvJkm97iMiev2LBgAAgETAR8ZaW1vV2tpadhkAAACFIuADAAAAGSHgAwAAABkh4AMAAAAZIeCjx2yXXQK6wTkCAGDg4jGZyNaECRPKLgEAAKBwBHxka9KkSWWXAAAAULhsh+jYPs/2Gttzy64F5di+fbu2b99edhkAAACFyvkK/ockTY6I33XX0PagiNhRQE0o0Ny5ld/tpk6dWm4hAAAABcryCr7tb0oaJ+lntv/F9m2277Z9q+3xqc1U21fZ/oWkpWnZJ20vs32v7QtK3AUAAABgt2R5BT8iPmh7iqSTJf1Z0sURscP2ZElflPTO1PQ1ko6MiM223yjpUElHS7Kkq2yfEBE3dezf9nRJ0yVpzJgxfb9D/VAjPaVl2rRpZZdQs0Y6rgAAoH/KMuB3MEzS92wfKikk7Vn13rURsTnNvzFNd6fX+6oS+F8Q8CNilqRZktTS0hJ9VHe/FtH/d7u1tVXSrofo9LdAXa/j2t/2CwAAFGcgBPzPS7o+Ik63PVbSDVXvPVk1b0lfiohvFVcaAAAAUF8DIeAPk/T7ND91F+2ukfR523Mj4gnbL5O0PSL+2NcFom8cddRRZZcAAABQuIEQ8L+qyhCdz0i6uqtGEfFz24dLui0Nb3hC0jmSCPgNioAPAAAGomwDfkSMTbMbJR1W9dZn0vutklo7rHOJpEv6vjoUYdu2bZKkIUOGlFwJAABAcbJ8TCYgSfPnz9f8+fPLLgMAAKBQBHz0WCM8QWeg4xwBADBwEfABAACAjBDwAQAAgIwQ8AEAAICMZPsUHaClpaXsEgAAAApHwEe2Jk6cWFO79LkHuy3OH9rrPiSpqamp130AAAAQ8JGtLVu2SJKGDRvWZZt6PW0mZtalGwAAgF5jDD6ytXDhQi1cuLDsMgAAAApFwAcAAAAyQsAHAAAAMkLABwAAADJCwAcAAAAywlN0kK1jjz227BIAAAAKR8BHtsaPH192CQAAAIVjiA6ytXHjRm3cuLHsMgAAAApFwEe2Fi9erMWLF5ddBgAAQKEI+AAAAEBGCPgAAABARgj4AAAAQEYI+AAAAEBGeEwmsnXCCSeUXQIAAEDhCPjI1rhx48ouAQAAoHAM0UG2NmzYoA0bNpRdBgAAQKEI+MjWkiVLtGTJkrLLAAAAKBQBHwAAAMgIAR8AAADICAEfAAAAyAgBHwAAAMgIj8lEtk455ZSySwAAACgcAR/ZGj16dNklAAAAFI4hOsjW+vXrtX79+l22aW5ulu2dJs0c9oJlnU3Nzc0F7QkAAEDtCPjI1tKlS7V06dJdtmlra1NE7DRJesGyzqa2trYidgMAAKBHCPgAAABARgj4AAAAQEYI+AAAAEBGCPgAAABARnhMJrJg+y83yLabMmVKSdXsWme1AgAA1AsBH9kaNWpU2SUAAAAUjiE6VWyPtb2q7DpQH+vWrdO6devKLgMAAKBQA/IKvu1BEbGj7DrQt2666SZJ0rhx40quBAAAoDgNewU/XW2/z/Zc22ts/9j2ENuftb3M9irbs2w7tb/B9n/YXi7po7YPsL3Q9j1pOi51vYftb9tebfvntgeXt5cAAABAzzRswE/GS/rPiDhc0lZJH5L09YiYFBETJQ2WdGpV+70ioiUiLpZ0qaQbI+JVkl4jaXVqc6ikb0TEBEl/kvTOgvYFAAAA6LVGH6KzPiJuSfNzJJ0n6UHb/yxpiKRmVYL7otRmXtW6fyXpfZIUEc9K2mK7SdKDEbEitblT0tiOG7U9XdJ0SRozZkw99we9kP5Y8wLTpk0rfJsAAABlafQr+B2fNRiS/lPSuyLilZK+LWnvqvefrKHPZ6rmn1UnvwRFxKz0l4CWkSNH9rBk9JWI2GmaPXu2Zs+e/YLl1VO9t1nLBAAA0JcaPeCPsX1smn+vpJvT/Ebb+0p61y7WXSrpHyTJ9h62h/VdmSjDqaeeqlNPPbX7hgAAABlp9IC/VtKHba+R1CTpv1S5ar9K0jWSlu1i3Y9KOtn2SlWG4hzRx7WiYCNGjNCIESPKLgMAAKBQjT4Gf0dEnNNh2WfStJOIOKnD60clvb2TPidWtfn3OtSIkqxdu1aSNH6w90KlAAAcI0lEQVT8+JIrAQAAKE6jB3ygS7fddpskAj4AABhYGjbgR8RDqrraDgAAAKDxx+ADktRQT6dppFoBAEDjIeADAAAAGSHgAwAAABlp2DH4QHdOP/30sksAAAAoHAEf2Ro2jM8uAwAAAw9DdJCtVatWadWqVd22s73T1Nmyzqampqa+3gUAAIAe4wo+srV8+XJJ0sSJXT9Ntasn2sTMvqgIAACg73EFHwAAAMgIAR8AAADICAEfAAAAyAgBHwAAAMgIN9kiW2eeeWbZJQAAABSOgI9sDRkypOwSAAAACscQHWRrxYoVWrFiRdllAAAAFIqAj2wR8AEAwEBEwAcAAAAyQsAHAAAAMkLABwAAADJCwAcAAAAywmMyka2zzz677BIAAAAKR8BHtvbcc8+ySwAAACgcQ3SQrWXLlmnZsmVllwEAAFAoAj6ytXr1aq1evbrsMgAAAApFwAcAAAAyQsAHAAAAMkLABwAAADJCwAcAAAAywmMyka2pU6eWXQIAAEDhuIIPAAAAZISAj4bS3Nws2zVPmjms5rbNzc1l7x4AAECvEfDRUNra2hQRNU2zZ8+WpJrbt7W1lbx3AAAAvUfABwAAADJCwAcAAAAyQsAHAAAAMkLAR7YGDeIpsAAAYOAh4KMQtgvf5jnnnFP4NnujjGMEAADyQ8AHAAAAMkLAR7ZuvPHGsksAAAAoXL8K+LYfsj2i7DokyfbHbA8puw7svgcffLDsEgAAAApXt4Dvin71C0MvfUwSAR8AAAANpVeB3PZY22ttf1/SKkmX215ue7XtC6raPWT7Att32V5p+xVp+XDbP0/tvyPJVet83PaqNH2sanv32W61fb/tubYn277F9gO2j95Frfvanp22f6/td6bl/9WxZtvnSTpQ0vW2r+/NMQIAAACKVI/nCB4q6f0Rcbvt5ojYbHsPSUttHxkR96Z2GyPiNbY/JOkTkv5O0vmSbo6Iz9l+q6RzJcn2ayVNk3SMKqH/V7ZvlNQm6eWS/kbSByQtk/ReScdLepukf5X0ji7q/DdJWyLilWkbTWn5jE5qvtT2xyWdHBEbO3Zke7qk6ZI0ZsyY3TtqA1AjPCWmEWoEAADYlXoMqXk4Im5P82favkvS3ZImSDqiqt2C9PVOSWPT/AmS5khSRFytSoCXKoF9YUQ8GRFPpHXfkN57MCJWRsRzklZLWhoRIWllVb+dmSzpG+0vIqJ9W7uquVMRMSsiWiKiZeTIkd01RxIRvZ56YvDgwaXUWMS+AQAAdKUeAf9JSbJ9iCpX5k+JiCMlXS1p76p2z6Svz6p3fzl4pmr+uarXz/W03xpqRgM766yzyi4BAACgcPW8KXaoKmF/i+0DJL25hnVuUmWIjWy/WVL7sJlfSnqH7SG295F0elrWG9dK+nD7izREZ1c1Py5pv15uEwAAAChU3QJ+RNyjyjCX+yT9UNItNax2gaQTbK+WdIak36a+7pLUKukOSb+S9J2IuLuXJX5BUlO6afceVcbX76rmWZKWcJNt47ruuuvKLgEAAKBwZuxv77S0tMTy5cvLLqPfs12XceY96ae1tVVTH/qoNHNL3fvuC2VvHwAA9G+274yIlu7a5fTcegAAAGDAq8djMvsV29MkfbTD4lsi4sOdtUcxuDLdPY4RAACoh+wCfkTMljS77DoAAACAMjBEB9kaOnRo2SUAAAAUjoCPbJ1xxhlllwAAAFA4Aj4AAACQEQI+Go7tmqeetG9qaupmywAAAP1fdjfZIm89edJMa2urWiVFTO2rcgAAAPodruADAAAAGSHgAwAAABkh4AMAAAAZYQw+sjV8+PCySwAAACgcAR/ZOu2008ouAQAAoHAM0QEAAAAyQsBHthYtWqRFixaVXQYAAEChGKKDbG3atKnsEgAAAArHFXwAAAAgIwR8AAAAICMEfAAAACAjjMFHtkaNGlV2CQAAAIUj4CNbU6ZMKbsEAACAwjFEBwAAAMgIAR/ZWrBggRYsWFB2GQAAAIViiA6ytXXr1rJLAAAAKBxX8AEAAICMEPABAACAjBDwAQAAgIwwBh/ZOuigg8ouAQAAoHAEfGRr8uTJZZcAAABQOIboAAAAABkh4KPumpubZbtPJs0c1qP2++67b9mHAwAAoFAEfNRdW1ubIqJPJkk1t509e7aefPLJko8GAABAsQj4AAAAQEYI+AAAAEBGCPgAAABARgj4yNYhhxxSdgkAAACFI+CjS7bLLqFXTjzxxLJL6JFGP94AAKB/IOADAAAAGSHgI1tz5swpuwQAAIDCEfCRrR07dpRdAgAAQOEKD/i2H7I9oujtAgAAAANBjwK+K7jqDwAAAPRT3YZ122Ntr7X9fUmrJF1ue7nt1bYvqGr3kO0LbN9le6XtV6Tlw23/PLX/jiRXrfNx26vS9LGq7d1nu9X2/bbn2p5s+xbbD9g+ehe1zrT9Xds32F5n+7yqPldVtfuE7Zlp/gbbX0v7tMb2JNsL0ra+0MV2pqf2yx977LHuDmFDs93jqb/ZnX0oYwIAAKiHWq/GHyrpPyNigqR/iogWSUdKOtH2kVXtNkbEayT9l6RPpGXnS7o5rbtQ0hhJsv1aSdMkHSPpdZL+3var0zovl3SxpFek6b2Sjk99/ms3tb5C0pskHS3pfNt71rB/f0779E1JP5X0YUkTJU21Pbxj44iYFREtEdEycuTIGrpvXBHR46m/OOywwyTt3j6UMQEAANRDrQH/4Yi4Pc2fafsuSXdLmiDpiKp2C9LXOyWNTfMnSJojSRFxtaS2tPx4SQsj4smIeCKt+4b03oMRsTIinpO0WtLSqCSglVX9duXqiHgmIjZK+qOkA2rYv6vS15WSVkfEIxHxjKR1kkbXsD76oeOOO67sEgAAAAo3qMZ2T0qS7UNUuYo+KSLabLdK2ruq3TPp67M96Lszz1TNP1f1+rka+q1et72OHdr5l5m9tbPq/jtuuzf7AQAAABSqpzfMDlUl7G+xfYCkN9ewzk2qDLGR7TdLakrLfynpHbaH2N5H0ulpWV94VNJL0v0AL5Z0ah9tB/1Ia2tr2SUAAAAUrkdXpyPiHtt3S7pP0npJt9Sw2gWSrrC9WtKtkn6b+ror/QXgjtTuOxFxt+2xPampxrq32/5c2tbvVakfAAAAyI65ua93WlpaYvny5WWX0Sds79bNn7u7Xk1mDpNmbqmpaWtrq6ZNm9YwN7D26XEDAAANz/ad6cEwu8Qz7dElwmaxON4AAKAeGvIGUtvTJH20w+JbIuLDZdQDAAAA9BcNGfAjYrak2WXXgf5twoQJZZcAAABQOIboIFuTJk0quwQAAIDCEfCRre3bt5ddAgAAQOEI+OgTtvtk6knfe+21l/bZZ5+SjwQAAECxGnIMPvq3vn4aTMysrR0fdAUAAAYiruADAAAAGSHgAwAAABkh4AMAAAAZYQw+snXUUUeVXQIAAEDhCPjIFgEfAAAMRAzRQba2bdumbdu2lV0GAABAoQj4yNb8+fM1f/78sssAAAAoFAEfAAAAyAgBHwAAAMgIAR8AAADICAEfAAAAyAiPyUS2Wlpayi4BAACgcAR8ZGvixIlllwAAAFA4huggW1u2bNGWLVvKLgMAAKBQBHxka+HChVq4cGHZZQAAABSKgA8AAABkhIAPAAAAZISADwAAAGSEgA8AAABkhMdkIlvHHnts2SUAAAAUjoCPbI0fP77sEgAAAArHEB1ka+PGjdq4cWPZZQAAABSKgI9sLV68WIsXLy67DAAAgEIR8FGI5uZm2a550sxhnS5vbm4ue1cAAAD6NQI+CtHW1qaIqHmS1Onytra2kvcEAACgfyPgAwAAABkh4AMAAAAZ4TGZyNYJJ5xQdgkAAACFI+AjW+PGjSu7BAAAgMIxRAddsl12Cb2yYcMGbdiwocv3G33/AAAAOkPAR7aWLFmiJUuWlF0GAABAobIM+La/Y/uINP9E2fUAAAAARcky4EfE30XEr8uuo69cccUVmjhxovbYYw9NnDhRV1xxRdklAQAAoJ9o+IBvex/bV9u+x/Yq22fZvsF2S1Wbr9lebXup7ZFp2Xm2f237Xts/Sstm2v6B7dtsP2D778var65cccUVmjFjhi677DI9/fTTuuyyyzRjxgxCPgAAACRlEPAlTZH0h4h4VURMlNRx0PU+kpZHxARJN0o6Py3/lKRXR8SRkj5Y1f5ISX8l6VhJn7V9YJ9W30MXXnihLr/8cp188snac889dfLJJ+vyyy/XhRdeWHZpAAAA6AdyeEzmSkkX2/6KpMUR8csOT0d5TtK8ND9H0oI0f6+kubavlHRlVfufRsRTkp6yfb2kozu8L9vTJU2XpDFjxtR5d3ZtzZo1Ov7443dadvzxx2vNmjV9sr3++KSZntY0bdq0PqoEAACg/2n4K/gRcb+k16gS9L9g+7PdrZK+vlXSN9K6y2wP6vB+x/bV25wVES0R0TJy5MjdL343HH744br55pt3WnbzzTfr8MMP75PtRURdptxrAgAA6C8aPuCnITTbImKOpItUCezVXiTpXWn+vZJutv0iSaMj4npJ/yJpmKR9U5u3297b9nBJJ0la1se70CMzZszQueeeq+uvv17bt2/X9ddfr3PPPVczZswou7R+Z/369Vq/fn3ZZQAAABQqhyE6r5R0ke3nJG2X9A+S/r3q/SclHW37M5L+KOksSXtImmN7mCRLujQi/pSGftwr6XpJIyR9PiL+UNie1OA973mPJOkjH/mI1qxZo8MPP1wXXnjhX5bjeUuXLpUkTZ06tdxCAAAACtTwAT8irpF0TYfFJ1W9v686d3wXy++NiPfVobQ+8573vIdADwAAgE41/BAdAAAAAM9r+Cv49RQRM8uuAQAAAOgNruCjS7k/aSb3/QMAAAMTV/CRrSlTppRdAgAAQOEI+MjWqFGjyi4BAACgcAzRQbbWrVundevWlV0GAABAobiCj2zddNNNkqRx48aVXAkAAEBxuIKPwtiueeqqfVNTU8l7AQAA0L9xBR+F2J0n1vDQUgAAgJ7jCj4AAACQEQI+AAAAkBGG6CBbp556atklAAAAFI6Aj2yNGDGi7BIAAAAKxxAdZGvt2rVau3Zt2WUAAAAUiiv4yNZtt90mSRo/fnzJlQAAABSHK/gAAABARgj4AAAAQEYI+AAAAEBGCPgAAABARhwRZdfQ0Gw/JunhqkUjJG0sqRy8EOej/+Gc9D+ck/6Hc9L/cE76n4F4Tg6OiJHdNSLg15nt5RHRUnYdqOB89D+ck/6Hc9L/cE76H85J/8M56RpDdAAAAICMEPABAACAjBDw629W2QVgJ5yP/odz0v9wTvofzkn/wznpfzgnXWAMPgAAAJARruADAAAAGSHg95DtZtvX2n4gfW3qot37U5sHbL+/avkNttfaXpGmlxRXfV5sT0nH8je2P9XJ+y+2PS+9/yvbY6ve+3Ravtb2m4qsO2e7e05sj7X9VNXPxTeLrj1XNZyTE2zfZXuH7Xd1eK/Tf8ew+3p5Pp6t+hm5qriq81bDOfm47V/bvtf2UtsHV73Hz0gf6OU54edEkiKCqQeTpK9K+lSa/5Skr3TSplnSuvS1Kc03pfdukNRS9n40+iRpD0n/T9I4SXtJukfSER3afEjSN9P8uyXNS/NHpPYvlnRI6mePsvep0adenpOxklaVvQ+5TTWek7GSjpT0fUnvqlre5b9jTMWfj/TeE2XvQ25TjefkZElD0vw/VP27xc9IPzsn6TU/JxFcwd8Nb5f0vTT/PUnv6KTNmyRdGxGbI6JN0rWSphRU30BxtKTfRMS6iPizpB+pcm6qVZ+rH0s6xbbT8h9FxDMR8aCk36T+0Du9OSfoG92ek4h4KCLulfRch3X5d6z+enM+0DdqOSfXR8S29PJ2SQeleX5G+kZvzgkSAn7PHRARj6T5DZIO6KTNyyStr3r9u7Ss3ez0p6N/I9zstu6O8U5tImKHpC2Shte4LnquN+dEkg6xfbftG22/oa+LHSB6873Oz0n99faY7m17ue3bbXd2cQk919Nzcq6kn+3muqhNb86JxM+JJGlQ2QX0R7avkzSqk7dmVL+IiLDd08cQnR0Rv7e9n6SfSPpbVf4UCwxkj0gaExGbbL9W0pW2J0TE1rILA/qRg9P/H+Mk/cL2yoj4f2UXNVDYPkdSi6QTy64FFV2cE35OxBX8TkXE5IiY2Mn0U0mP2n6pJKWvf+yki99LGl31+qC0TBHR/vVxST8UQ0N2V5fHuLM2tgdJGiZpU43roud2+5yk4VKbJCki7lRl/OVhfV5x/nrzvc7PSf316phW/f+xTpX7uV5dz+IGqJrOie3Jqlzke1tEPNOTddFjvTkn/JwkBPyeu0pS+53y75f0007aXCPpjbab0lN23ijpGtuDbI+QJNt7SjpV0qoCas7RMkmH2j7E9l6q3LDZ8W756nP1Lkm/iIhIy9+dnuhyiKRDJd1RUN052+1zYnuk7T0kKV11OVSVG9bQO7Wck650+u9YH9U5UOz2+Ujn4cVpfoSk10v6dZ9VOnB0e05sv1rSt1QJktUX9fgZ6Ru7fU74OalS9l2+jTapMl54qaQHJF0nqTktb5H0nap2H1Dl5s3fSJqWlu0j6U5J90paLekS8fSW3pyLt0i6X5WrvTPSss+p8gMvSXtL+u90Du6QNK5q3RlpvbWS3lz2vuQy7e45kfTO9DOxQtJdkk4re19ymWo4J5NUGeP6pCp/4Vpdte4L/h1jKud8SDpO0kpVniiyUtK5Ze9LLlMN5+Q6SY+mf59WSLqqal1+RvrROeHn5PmJT7IFAAAAMsIQHQAAACAjBHwAAAAgIwR8AAAAICMEfAAAACAjBHwAAAAgIwR8AA3D9ljbffbZEbZPsr04zb/N9qf6altoTLb/tZ7tOqwz1fbXe15Vt/222L50d7dt+4l61wSgbxHwAaATEXFVRHy57Do6Sp8A3K/0x5o6ckU9/s+rNbj3OOD3BduDImJ5RJxXdi0AikPAB9BoBtmea3uN7R/bHiJJtj9re5ntVbZn2XZafp7tX9u+1/aP0rJ9bH/X9h2277b99o4bqb6iabvV9qW2b7W9zva7qtp9Mm33XtsXdNLPHmn9VbZX2v4/afnLbV9n+x7bd9n+XymEXlTV9qzU9iTbv7R9ldKnMto+J9W/wva32j8JuBZp/69O215VtZ1JaR/vSX3vZ3tv27NTPXfbPrnq+Fxl+xeqfPhft8citXlP6muV7a9ULX/C9oVp27fbPqCTdWfa/oHt22w/YPvvd3Ue0l981tr+viqfGj46beci26vT8T/a9g3pvL6t47lPrxenc/BlSYPTMZ+b3rvS9p2pv+lpWWftOj1ftqfZvt/2Hap86mbHfX6R7Yds71+17AHbB9g+zfav0nm5rv2YVR2nWyT9wDv/ZerodPzuTud6fNXmRqdj8YDt87s4f92eYwD9QNmftMXExMRU6yRprKSQ9Pr0+ruSPpHmm6va/UDp03Al/UHSi9P8/unrFyWd075MlU9M3EfSSZIWp+VTJX09zbeq8gm8L5J0hKTfpOVvlDRLktN7iyWd0KHm10q6tup1ew2/knR6mt9b0hBVPtH3Wkl7SDpA0m8lvTTV9aSkQ1L7wyUtkrRnev2fkt7Xg+P4Tknfrno9TNJektZJmpSWDZU0SNI/SfpuWvaKVNPe6fj8Ts9/mnctx+LAtP7I1PcvJL0jvRdV5+yrkj7TSd0zVfmEysGSRkhan/rsdNvp++U5Sa+r6iOUPr1a0kJJP5e0p6RXSVrR8dyn14slnZTmn+hQU/v+D1bll4jhHdt1db7SuW0/HntJuqV6u1XrX6LnPxH9GEnXpfkm6S8fWPl3ki6uOk53ShqcXp+k57+vh0oalOYnS/pJ1T4/osqntbfvS0v1vtRyjpmYmPrHxBV8AI1mfUTckubnSDo+zZ+crmaulPRXkiak5fdKmmv7HEk70rI3SvqU7RWSblAlsI7pZrtXRsRzEfFrVcJ3ez9vlHS3pLtUCcCHdlhvnaRxti+zPUXSVtv7SXpZRCyUpIh4OiK2pX25IiKejYhHJd0oaVLq546IeDDNn6LKLw7L0j6cImlcN/VXWynpr21/xfYbImKLpPGSHomIZammrRGxI9U0Jy27T9LDkg5L/VwbEZt7cCwmSbohIh5Lfc9VJYhL0p9VCYxSJZyO7aL2n0bEUxGxUdL1ko7uZtsPR8TtVev/WdKSquNwY0RsT/NdbXNXzrN9j6TbJY3WC/dZ6vp8HaPnj8efJc3rYhvzJJ2V5t9d1e4gSdek7/lP6vnveUm6KiKe6qSvYZL+25V7Wb7WYZ1rI2JTWm+Bnv/ZalfLOQbQD/T7cZMA0EF0fG17b1WuirZExHrbM1UJ7ZL0VlVC5GmSZth+pSpXIN8ZEWurO+psWEiVZ6qbVn39UkR8q8tiI9psv0rSmyR9UNKZkj66i+105ckO2/9eRHy6q8a2j5H0/9u5nxCryjiM498niAoMIccgxf5ARC0CGxCaVW3aRJCBEWXR4KqQtrWRkMZVikhCUkERzKaFSAMuFGQEk1GLCBcOtqlFmUShkBg6Ok+L9z3Nmdu9em/2Z7w8Hxi43POe8/7OeQ/M77zn994mrrdtT7Vi+lbSKPA0sE3SIcps9o3GdM1rcR1ztpuxvUrv/09/Gf9efUu6vyPGzn7mqeNqe14LawmusLiE9Xa6kPQkZRZ8zPZFSYd7tO06XpLWdztuFzPAg5JWAuuBbfX73cBO21M1lq2tfTrPuzEBTNt+rl6fw61t3a7topC5sTGOiP9IZvAj4mZzr6Sx+vkl4AsWkqpfJC0DNkCpXwbW2J4G3qLMXi4DDgBvSH/W6T/2N2M5AGyqfSJptaS72w0kjQC32N4LbAFGbf8G/NAkeJJuU1lLcAR4QaVufyXlweREl34PARuaviTdJem+dgPbx22vrX9T7W2SVgEXbU8C24FR4DRwj6R1tc2dNeE9Amys3z1EedOx6MGo32tRz+UJSSO1Bv1FyluKQTyrsi5gBaX05Ms++x7E98DaWv++hvKWoDEn6db6eTlwrib3DwOP92jXa7yOU67Hitr2+W7B1AeSfcBOYNb2r63+f6yfX+3z3Nr7jHdse6rGdgflQeJox/Z/+jpHxL8kM/gRcbM5DWyW9DFlwememmB9RKkbPktJ+qDUsk9KWk6ZfXzP9nlJE8Au4GR9CPgOeGbQQGwflPQIMFOfFS4ALwM/t5qtBj7Rwi+4NLO4rwAfSHoHmKMkd/uAMUqduYE3bZ+tyWO731OStgAH63HngM2U8pl+PApslzRf933d9mWVxba7a4L3O2V2+n1gTy0DuQKM275Uz3ega2H7J5WfHp2mjMd+25/3GXPjZN1/BJiwfQY406PvqwMeu3GUck+cAmYp5SiNDyn3zdfAJuA1SbOU+/JYt3a2N3YbL9vH6tumGeA88M01YvqMcl+Pt77bSim3OUdZz/BAH+f2LvBpjWd/x7YTwF5K6c+k7a/aG/u83yNiCWgW50RERCxpNRm+YHvH/x1LRMRSlhKdiIiIiIghkhn8iIiIiIghkhn8iIiIiIghkgQ/IiIiImKIJMGPiIiIiBgiSfAjIiIiIoZIEvyIiIiIiCGSBD8iIiIiYoj8AQJEjTlpDW01AAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 864x576 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "permute_importance = permutation_importance(rf, X_test, y_test, n_rounds=30,\n",
    "                                            random_state=42)\n",
    "permute_importance_mean = np.mean(permute_importance, axis=-1)\n",
    "sorted_idx = permute_importance_mean.argsort()\n",
    "\n",
    "_, ax = plt.subplots(figsize=(12, 8))\n",
    "ax.boxplot(permute_importance[sorted_idx].T,\n",
    "           vert=False, labels=X_test.columns[sorted_idx])\n",
    "ax.vlines(0, 0, X_test.shape[1] + 1, linestyles='dashed', alpha=0.5)\n",
    "ax.set_xlabel(\"baseline score - score on permutated variable\")\n",
    "ax.set_title(\"Permutation Importances (test set)\");"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Same Analysis With a Non-Overfitting Classifier"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "RF train accuracy: 0.833\n",
      "RF test accuracy: 0.851\n"
     ]
    }
   ],
   "source": [
    "rf.named_steps['classifier'].set_params(min_samples_leaf=8)\n",
    "rf.fit(X_train, y_train)\n",
    "print(\"RF train accuracy: %0.3f\" % rf.score(X_train, y_train))\n",
    "print(\"RF test accuracy: %0.3f\" % rf.score(X_test, y_test))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAv0AAAHiCAYAAAB7rnPHAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4wLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvqOYd8AAAIABJREFUeJzs3XmUXVWd9//3x4BhCEQE1IBD2T8jaAgoBJCfgGjjGCeaFp52aMDWPNq2SHfTP2gnQFEi6E/EOaKgDdo+DqhNVEAGbSMICREqkQi2RDHggGIYRSDf5497srwWqYkabuXk/VqrVs7dd599vufcYvG5++5zK1WFJEmSpPZ6WK8LkCRJkjSxDP2SJElSyxn6JUmSpJYz9EuSJEktZ+iXJEmSWs7QL0mSJLWcoV+SxiDJQUl+2es6JEkaiqFfUuskWZ3kniR3JvlVkrOTzOh1XWOVpJLc1ZzXnUn+MMnHH/YNTnOt/9RV451JDh+HY1eSJ411nFEc78gk35+s4w3FN5aSxoOhX1JbvaSqZgBPA54O/HuP6xkve1TVjObnEaPdOclmE1HUAKd21Tijqr44CcccUpJpva7hoZik10vSJsDQL6nVqupXwAV0wj8ASeYnWZ7k9iQ3JTmx67m+Zlb5iCS/SHJrkrd1Pb9lM5t9W5IfA3t3Hy/JU5JcluQPSVYmeWnXc2cn+ViSbzUz4EuSPCbJ6c14q5I8/aGcZ5LXJ/lpkt8n+UaSnbqeqyRvSnIDcEPTtmuSi5r+P0lyWFf/FyX5cZI7kqxJcmySrYFvATt1zeDv9KBChq5xpyRfSfLbJDcmObrruX2SXN5ct1uSfCTJw5vnvtd0u2b9Jwcbmonv/jSgudYfT/LNJHcBz04yPcn7m9f110k+kWTLEda+Osm/Jbm2+bTl00ke3byWdyT5TpLtmr7rf4cWJLm5OZ9ju8aa3rzmNzc/pyeZ3jx3UJJfJjkuya+AL2zoug91vbquxRuS3ND0+WiSdD3/+iTXNbX/OMmeI3yNlqbz382vk/z/I3rhJU0Jhn5JrZbkscALgZ92Nd8F/D3wCGA+8MYkLx+w6/7ALsBfA+9M8pSm/QTg/2l+ng8c0XWszYH/Ai4EHgW8GTg3yS5d4x4GvB3YAbgXuBy4unn8ZWDUQSrJc4BTmrFnAT8H/nNAt5cD+wJPbQL8RcDnmzr/F/CxJE9t+n4a+N9VtQ2wG3BJVd1F5zre3DWDf/MoanwYnWtzDbAznet6TJLnN10eAP6ZznXYr3n+HwGq6sCmzx6j/OTglcB7gG2A7wMLgSfTeQP4pKaOd470HIBDgec2Y7yEThh/K7Ajnf+fHj2g/7OB2cDzgOOSHNy0vw14RlPHHsA+dH4n1nsM8EjgCXR+Tzd03Qe9Xl1eTOdN6e50fjeeD5DkFcCJzdjbAi8FfjeC1+hDwIeqals6v///Z2SXTdJUYOiX1FZfS3IHcBPwGzphHYCquqyq+qtqXVVdS2c29VkD9j+pqu6pqmvohKA9mvbDgPdU1e+r6ibgjK59ngHMABZW1Z+q6hLgfODvuvqcV1XLquqPwHnAH6vqc1X1APBFOkuRhnJ1M3P7hyTrj/0q4DNVdXVV3UtnKdN+Sfq69julqfkeOmFwdVWdVVX3V9Vy4CvAK5q+99F5c7BtVd1WVVcPU9NAx3bVeGvTtjewY1W9q7k2PwM+RecNB801uaKpZzXwSR78mozW16tqSVWto/MGawHwz811uAN47/rjj9CHq+rXVbUG+G/gh1W1vOu1HPjanVRVd1VVP3AWf/49eBXwrqr6TVX9FjgJeE3XfuuAE6rq3ub1epARXq+FVfWHqvoFcCl//rTrdXSWYF1VHT+tqp8zzGtE5/fiSUl2qKo7q+qKEV85ST1n6JfUVi9vZqoPAnalMyMKQJJ9k1zaLGFYC7yh+/nGr7q276YT5gF2ovNGYr2fd23vBNzUhMzu53fuevzrru17NvB4uBuO96yqRzQ/62eWd+quo6ruBH434LjdNT8B2LcrmP+BThB9TPP8ocCLgJ8n+W6S/YapaaD3d9W4/ro+gc4Sle5jvhV4NECSJyc5P50br2+nE8gHviaj1X3OOwJbAcu6jv/tpn2kRvvaDfw9Wb8c6i9erwHPAfy2eSMxqBFer8F+hx8H/M8Ghh3yNQL+gc6nHKuSXJXkxUPVKGlqMfRLarWq+i5wNvD+rubPA98AHldVM4FPAHnw3ht0C53QtN7ju7ZvBh7XLJPofn7NKMserZvpBDYAmuU72w84bnVt3wR8tyuYP6JZNvJGgGYG+GV0lv58jT8v4+geY7RuAm4ccMxtqupFzfMfB1YBs5vlI29l6NfkLjohHoAkj9lAn+56b6UTzOd0HX9mc7P3RBn4e7J+OdRfvF4DnoMHX+cNXffRXq9uN9FZnrOh9kFfo6q6oar+js7vxfuALze/a5I2AoZ+SZuC04HnJlm/RGcb4PdV9cck+9BZ+z1S/wf49yTbNfcLvLnruR/SmVH9/5JsnuQgOmu/B66vH29fAI5K8rTmhtD30ll6snqQ/ucDT07ymqbOzZPsnc5NyA9P8qokM6vqPuB2OstNoDOzvX2SmQ+hxiuBO5obVLdMMi3JbknW3wi9TXOsO5PsCrxxwP6/Bv6q6/E1wJzmnLegs0Z9UM2nL58CPpjkUQBJdu5arz4R3pFkqyRzgKPoLN+Czuv19iQ7JtmBzn0F5wwxzoau+3DXayhn0lmCtVc6npTkCQzzGiV5dZIdm2u5/uti1w1yDElTjKFfUus166Y/x59v2vxH4F3Nmv93MrobEk+isxzjRjo37P5H13H+RCfkv5DOzPLHgL+vqlVjPYehVNV3gHfQWZd/C51Z3EHXqjfr2Z/X9LmZzjKQ9wHTmy6vAVY3y0beQGfpD815fAH4WbP8Y8Tf3tPcs/BiOuvKb6Rzfc4E1gfZY+m8+bqDTjgfeLPuicBnm+MeVlXXA+8CvkPnG4lG8p36x9G5ofuK5ty+Q+dm7Yny3eZ4F9NZ8nRh034ysBS4FuincyP3yYMNMsh1H+56DaqqvkTnBufPN/t/DXjkCF6jFwArk9xJ56be/zXYPQeSpp5UjeXTWkmS1K25gfpGYPOqur+31UhShzP9kiRJUssZ+iVJkqSWc3mPJEmS1HLO9EuSJEktZ+iXJEmSWm6zXhfQRjvssEP19fX1ugxJkiS12LJly26tqhH9ZXFD/wTo6+tj6dKlvS5DkiRJLZbk5yPt6/IeSZIkqeUM/ZIkSVLLGfolSZKkljP0S5IkSS1n6JckSZJaztAvSZIktZyhX5IkSWo5Q78kSZLUcoZ+SZIkqeUM/ZIkSVLLGfolSZKkljP0S5IkSS1n6JckSZJaztAvSZIktZyhX5IkSWo5Q78kSZLUcoZ+SZIkqeUM/ZIkSVLLbdbrAtqof81a+o5f3OsyJEmSNIFWL5zf6xJGzJl+SZIkqeUM/ZIkSVLLGfolSZKkljP0S5IkSS1n6JckSZJaztAvSZIktdxGF/qTHJBkZZIfJdlygo5xUJLzJ2JsSZIkabJtdKEfeBVwSlU9raru6XUxkiRJ0lQ3YaE/ydZJFie5JsmKJIcn2SvJd5MsS3JBkllJNktyVZKDmv1OSfKeQcZ8HXAY8O4k5zZt/9bsf22Sk5q2viSrkpyd5Pok5yY5OMmSJDck2afpt0+Sy5MsT/KDJLsMch6fSXJl0+9lE3TJJEmSpAkxkX+R9wXAzVU1HyDJTOBbwMuq6rdJDgfeU1WvTXIk8OUkb27223dDA1bVmUn2B86vqi8neR4wG9gHCPCNJAcCvwCeBLwCeC1wFfBKYH/gpcBbgZcDq4ADqur+JAcD7wUOHXDYtwGXNHU+ArgyyXeq6q7uTkkWAAsApm2740O8ZJIkSdL4m8jQ3w98IMn7gPOB24DdgIuSAEwDbgGoqpVJ/qPpt19V/WmEx3he87O8eTyDzpuAXwA3VlU/QJKVwMVVVUn6gb6m/0zgs0lmAwVsPsgxXprk2ObxFsDjgeu6O1XVImARwPRZs2uE9UuSJEkTbsJCf1Vdn2RP4EXAycAlwMqq2m+QXeYCfwAeNYrDhM76/k/+RWPSB9zb1bSu6/E6/nze7wYurapDmn0uG+QYh1bVT0ZRlyRJkjRlTOSa/p2Au6vqHOA0Okt2dkyyX/P85knmNNt/AzwSOBD4cLOMZiQuAF6bZEYzzs5JRvOmYSawptk+cohjvDnNxxNJnj6K8SVJkqSem8jlPXOB05KsA+4D3gjcD5zRrO/fDDg9ya+BhcBfV9VNST4CfAg4YrgDVNWFSZ4CXN5k8juBVwMPjLDGU+ks73k7sHiQPu8GTgeuTfIw4EbgxSMcX5IkSeq5VLn8fLxNnzW7Zh1xeq/LkCRJ0gRavXB+T4+fZFlVzRtJ343xe/olSZIkjcJELu8ZkyTnAU8c0HxcVV3Qi3okSZKkjdWUDf1VdUiva5AkSZLawOU9kiRJUstN2Zn+jdncnWeytMc3dkiSJEnrOdMvSZIktZyhX5IkSWo5Q78kSZLUcoZ+SZIkqeW8kXcC9K9ZS9/xi3tdhiRJ0pj0+i/Oavw40y9JkiS1nKFfkiRJajlDvyRJktRyhn5JkiSp5Qz9kiRJUssZ+iVJkqSWM/RvQJI7e12DJEmSNF4M/ZIkSVLL9TT0J9k6yeIk1yRZkeTwJHsl+W6SZUkuSDIryWZJrkpyULPfKUneM8S4q5s+P0qyNMmezVj/k+QNTZ8ZSS5OcnWS/iQvG2Ssf2uOfW2SkybkQkiSJEkTqNd/kfcFwM1VNR8gyUzgW8DLquq3SQ4H3lNVr01yJPDlJG9u9tt3mLF/UVVPS/JB4GzgmcAWwArgE8AfgUOq6vYkOwBXJPlGVdX6AZI8D5gN7AME+EaSA6vqewMPlmQBsABg2rY7PsTLIUmSJI2/Xof+fuADSd4HnA/cBuwGXJQEYBpwC0BVrUzyH02//arqT8OM/Y2uY8yoqjuAO5Lcm+QRwF3Ae5McCKwDdgYeDfyqa4znNT/Lm8cz6LwJeFDor6pFwCKA6bNm18DnJUmSpF7paeivquuT7Am8CDgZuARYWVX7DbLLXOAPwKNGMPy9zb/rurbXP94MeBWwI7BXVd2XZDWdTwK6BTilqj45guNJkiRJU1Kv1/TvBNxdVecAp9FZsrNjkv2a5zdPMqfZ/hvgkcCBwIeb2fqxmAn8pgn8zwaesIE+FwCvTTKjqWHnJCN5wyFJkiRNGb1e3jMXOC3JOuA+4I3A/cAZzfr+zYDTk/waWAj8dVXdlOQjwIeAI8Zw7HOB/0rSDywFVg3sUFUXJnkKcHmz3OhO4NXAb8ZwXEmSJGlSpeu+VY2T6bNm16wjTu91GZIkSWOyeuH8XpegISRZVlXzRtLX7+mXJEmSWq7Xy3vGJMl5wBMHNB9XVRf0oh5JkiRpKtqoQ39VHdLrGiRJkqSpzuU9kiRJUstt1DP9U9XcnWey1BtfJEmSNEU40y9JkiS1nKFfkiRJajlDvyRJktRyhn5JkiSp5byRdwL0r1lL3/GLe12GJAH+RU1JkjP9kiRJUusZ+iVJkqSWM/RLkiRJLWfolyRJklrO0C9JkiS13CYV+pMcneS6JOf2uhZJkiRpsmxqX9n5j8DBVfXL4Tom2ayq7p+EmiRJkqQJtcnM9Cf5BPBXwLeSHJfk8iTLk/wgyS5NnyOTfCPJJcDFTdu/JbkqybVJTurhKUiSJEkPySYz019Vb0jyAuDZwJ+AD1TV/UkOBt4LHNp03RPYvap+n+R5wGxgHyDAN5IcWFXf68EpSJIkSQ/JJhP6B5gJfDbJbKCAzbueu6iqft9sP6/5Wd48nkHnTcCDQn+SBcACgGnb7jhBZUuSJEmjt6mG/ncDl1bVIUn6gMu6nrurazvAKVX1yeEGrKpFwCKA6bNm17hVKkmSJI3RJrOmf4CZwJpm+8gh+l0AvDbJDIAkOyd51ATXJkmSJI2rTTX0nwqckmQ5Q3zaUVUXAp8HLk/SD3wZ2GZySpQkSZLGxya1vKeq+prNW4Endz319ub5s4GzB+zzIeBDE1+dJEmSNDE21Zl+SZIkaZNh6JckSZJaztAvSZIktZyhX5IkSWo5Q78kSZLUcpvUt/dMlrk7z2Tpwvm9LkOSJEkCnOmXJEmSWs/QL0mSJLWcoV+SJElqOUO/JEmS1HLeyDsB+tespe/4xb0uQ9rorPYGeEmSJoQz/ZIkSVLLGfolSZKkljP0S5IkSS1n6JckSZJaztAvSZIktZyhX5IkSWo5Q78kSZLUcptk6E/ytSTLkqxMsqBp+4ck1ye5Msmnknykad8xyVeSXNX8PLO31UuSJEmjs6n+ca7XVtXvk2wJXJVkMfAOYE/gDuAS4Jqm74eAD1bV95M8HrgAeEovipYkSZIeik019B+d5JBm+3HAa4DvVtXvAZJ8CXhy8/zBwFOTrN932yQzqurO7gGbTwwWAEzbdscJLl+SJEkauU0u9Cc5iE6Q36+q7k5yGbCKwWfvHwY8o6r+ONS4VbUIWAQwfdbsGreCJUmSpDHaFNf0zwRuawL/rsAzgK2BZyXZLslmwKFd/S8E3rz+QZKnTWq1kiRJ0hhtiqH/28BmSa4DFgJXAGuA9wJXAkuA1cDapv/RwLwk1yb5MfCGSa9YkiRJGoNNbnlPVd0LvHBge5KlVbWomek/D/ha0/9W4PDJrVKSJEkaP5viTP9gTkzyI2AFcCNN6JckSZI2dpvcTP9gqurYXtcgSZIkTQRn+iVJkqSWM/RLkiRJLWfolyRJklrONf0TYO7OM1m6cH6vy5AkSZIAZ/olSZKk1jP0S5IkSS1n6JckSZJaztAvSZIktZw38k6A/jVr6Tt+ca/LkMZktTejS5LUGs70S5IkSS1n6JckSZJaztAvSZIktZyhX5IkSWo5Q78kSZLUcoZ+SZIkqeWmROhPsjrJDr2uQ5IkSWqjMYf+dEyJNw+SJEmSHuwhhfUkfUl+kuRzwArg00mWJlmZ5KSufquTnJTk6iT9SXZt2rdPcmHT/0wgXfv8S5IVzc8xXcdbleTsJNcnOTfJwUmWJLkhyT5D1Hpiks8kuSzJz5Ic3TXmiq5+xyY5sdm+LMkHm3O6LsneSb7aHOvkh3LNJEmSpF4Zywz9bOBjVTUH+NeqmgfsDjwrye5d/W6tqj2BjwPHNm0nAN9v9j0PeDxAkr2Ao4B9gWcAr0/y9GafJwEfAHZtfl4J7N+M+dZhat0VeD6wD3BCks1HcH5/as7pE8DXgTcBuwFHJtl+YOckC5o3CUsfuHvtCIaXJEmSJsdYQv/Pq+qKZvuwJFcDy4E5wFO7+n21+XcZ0NdsHwicA1BVi4Hbmvb9gfOq6q6qurPZ94DmuRurqr+q1gErgYurqoD+rnEHs7iq7q2qW4HfAI8ewfl9o/m3H1hZVbdU1b3Az4DHDexcVYuqal5VzZu21cwRDC9JkiRNjs3GsO9dAEmeSGe2fe+qui3J2cAWXf3ubf59YIzHu7dre13X43UjGLd73/V13M9fvunZgr/UPf7AY4/lPCRJkqRJNR434G5L5w3A2iSPBl44gn2+R2d5DkleCGzXtP838PIkWyXZGjikaZsIvwYe1dxfMB148QQdR5IkSeqpMc9YV9U1SZYDq4CbgCUj2O0k4AtJVgI/AH7RjHV180nBlU2/M6tqeZK+sda5gbrvS/Ku5lhr6NQvSZIktU46y+I1nqbPml2zjji912VIY7J64fxelyBJkoaQZFnzxTPD8vv1JUmSpJZrzQ2pSY4C3jKgeUlVvakX9UiSJElTRWtCf1WdBZzV6zokSZKkqcblPZIkSVLLtWamfyqZu/NMlnoTpCRJkqYIZ/olSZKkljP0S5IkSS1n6JckSZJaztAvSZIktZw38k6A/jVr6Tt+ca/LkEbEv7wrSVL7OdMvSZIktZyhX5IkSWo5Q78kSZLUcoZ+SZIkqeUM/ZIkSVLLGfolSZKkltuoQ3+Sg5KcP8HH+HSSa5Jcm+TLSWZM5PEkSZKk8bZRh/5J8s9VtUdV7Q78AvinXhckSZIkjcaUC/1J+pKsSnJukuua2fWtkuyd5AfNrPuVSbYZsN8+SS5Psrzpt0vTPqfp/6Nmtn52kq2TLG7GWpHk8MHqqarbm3ECbAnURJ6/JEmSNN6m6l/k3QX4h6pakuQzdGbX3wAcXlVXJdkWuGfAPquAA6rq/iQHA+8FDm32+1BVnZvk4cA04EXAzVU1HyDJzKGKSXJWs8+PgX8dpM8CYAHAtG13fCjnLEmSJE2IKTfT37ipqpY02+cAzwduqaqroDP7XlX3D9hnJvClJCuADwJzmvbLgbcmOQ54QlXdA/QDz03yviQHVNXaoYqpqqOAnYDrgA1+KlBVi6pqXlXNm7bVkO8hJEmSpEk1VUP/wCU0t49gn3cDl1bVbsBLgC0AqurzwEvpfDLwzSTPqarrgT3phP+Tk7xz2IKqHgD+k86nB5IkSdJGY6qG/scn2a/ZfiVwBTAryd4ASbZJMnBp0kxgTbN95PrGJH8F/KyqzgC+DuyeZCfg7qo6BziNzhuAB0nHk9Zv03nzsGoczk+SJEmaNFN1Tf9PgDc16/l/DHwYuAT4cJIt6czaHzxgn1OBzyZ5O7C4q/0w4DVJ7gN+RWet/97AaUnWAfcBbxykjjRjbttsXzNEX0mSJGlKStXU+jKaJH3A+c0ynY3S9Fmza9YRp/e6DGlEVi+c3+sSJEnSQ5BkWVXNG0nfqbq8R5IkSdI4mXLLe6pqNTDps/xJzgOeOKD5uKq6YLJrkSRJksbTlAv9vVJVh/S6BkmSJGkiuLxHkiRJajln+ifA3J1nstSbIyVJkjRFONMvSZIktZyhX5IkSWo5Q78kSZLUcoZ+SZIkqeW8kXcC9K9ZS9/xi3tdhobgX6GVJEmbEmf6JUmSpJYz9EuSJEktZ+iXJEmSWs7QL0mSJLWcoV+SJElqOUO/JEmS1HIbdehPclCS8yf4GP+U5KdJKskOE3ksSZIkaSJs1KF/kiwBDgZ+3utCJEmSpIdiyoX+JH1JViU5N8l1Sb6cZKskeyf5QZJrklyZZJsB++2T5PIky5t+uzTtc5r+P0pybZLZSbZOsrgZa0WSwwerp6qWV9XqCT5tSZIkacJM1b/IuwvwD1W1JMlngH8C3gAcXlVXJdkWuGfAPquAA6rq/iQHA+8FDm32+1BVnZvk4cA04EXAzVU1HyDJzLEWnGQBsABg2rY7jnU4SZIkadxMuZn+xk1VtaTZPgd4PnBLVV0FUFW3V9X9A/aZCXwpyQrgg8Ccpv1y4K1JjgOeUFX3AP3Ac5O8L8kBVbV2rAVX1aKqmldV86ZtNeb3EJIkSdK4maqhvwY8vn0E+7wbuLSqdgNeAmwBUFWfB15K55OBbyZ5TlVdD+xJJ/yfnOSd41a5JEmSNMVM1dD/+CT7NduvBK4AZiXZGyDJNkkGLk2aCaxpto9c35jkr4CfVdUZwNeB3ZPsBNxdVecAp9F5AyBJkiS10lQN/T8B3pTkOmA74MPA4cCHk1wDXEQzk9/lVOCUJMv5y3sVDgNWJPkRsBvwOWAucGXTdgJw8mCFJDk6yS+BxwLXJjlzPE5QkiRJmiypGriSpreS9AHnN8t0NkrTZ82uWUec3usyNITVC+f3ugRJkqQxSbKsquaNpO9UnemXJEmSNE6m3Fd2Nt+JP+mz/EnOA544oPm4qrpgsmuRJEmSxtOUC/29UlWH9LoGSZIkaSK4vEeSJElqOWf6J8DcnWey1BtFJUmSNEU40y9JkiS1nKFfkiRJajlDvyRJktRyhn5JkiSp5byRdwL0r1lL3/GLe13GlOVfw5UkSZpczvRLkiRJLWfolyRJklrO0C9JkiS1nKFfkiRJajlDvyRJktRyhv4hJOlLsqLXdUiSJEljYegHkvjVpZIkSWqt1oT+ZlZ+VZJzk1yX5MtJtkryziRXJVmRZFGSNP0vS3J6kqXAW5I8Osl5Sa5pfv7fZuhpST6VZGWSC5Ns2buzlCRJkkavNaG/sQvwsap6CnA78I/AR6pq76raDdgSeHFX/4dX1byq+gBwBvDdqtoD2BNY2fSZDXy0quYAfwAOnaRzkSRJksZF20L/TVW1pNk+B9gfeHaSHybpB54DzOnq/8Wu7ecAHweoqgeqam3TfmNV/ajZXgb0bejASRYkWZpk6QN3r91QF0mSJKkn2hb6awOPPwb8bVXNBT4FbNH1/F0jGPPeru0HgA2u/6+qRc2nBvOmbTVzFCVLkiRJE6ttof/xSfZrtl8JfL/ZvjXJDOBvh9j3YuCNAEmmJTG5S5IkqRXaFvp/ArwpyXXAdnSW63wKWAFcAFw1xL5vobMUqJ/OMp6nTnCtkiRJ0qRo21dV3l9Vrx7Q9vbm5y9U1UEDHv8aeNkGxtytq8/7x6FGSZIkaVK1baZfkiRJ0gCtmemvqtV0zcpLkiRJ6nCmX5IkSWo5Q78kSZLUcoZ+SZIkqeVas6Z/Kpm780yWLpzf6zIkSZIkwJl+SZIkqfUM/ZIkSVLLGfolSZKkljP0S5IkSS3njbwToH/NWvqOX9zrMnputTczS5IkTQnO9EuSJEktZ+iXJEmSWs7QL0mSJLWcoV+SJElqOUO/JEmS1HKbROhPcmaSpzbbd/a6HkmSJGkybRJf2VlVr+t1DZIkSVKvtG6mP8nWSRYnuSbJiiSHJ7ksybyuPh9MsjLJxUl2bNqOTvLjJNcm+c+m7cQk/5Hk8iQ3JHl9r85LkiRJeqhaF/qBFwA3V9UeVbUb8O0Bz28NLK2qOcB3gROa9uOBp1fV7sAbuvrvDjwH2A94Z5KdJrR6SZIkaZy1MfT3A89N8r4kB1TV2gHPrwO+2GyfA+zfbF8LnJvk1cD9Xf2/XlX3VNWtwKXAPhs6aJIFSZYmWfrA3QMPKUmSJPVO60J/VV0P7Ekn/J+c5J3D7dL8Ox/4aLPvVUk2G/D8wP4Dj7uoquZV1bxpW818aMVLkiRJE6B1ob9ZfnN3VZ0DnEYnxHd7GPC3zfYrge8neRjwuKq6FDgOmAnMaPq8LMkWSbYHDgKumuBTkCRJksZVG7+9Zy5wWpJ1wH3AG4H3dz1/F7BPkrcDvwF8J3M9AAAch0lEQVQOB6YB5ySZCQQ4o6r+kAQ6y34uBXYA3l1VN0/amUiSJEnjoHWhv6ouAC4Y0HxQ1/Mz2LD9B2m/tqr+fhxKkyRJknqidct7JEmSJP2l1s30j6eqOrHXNUiSJElj5Uy/JEmS1HKGfkmSJKnlDP2SJElSy7mmfwLM3XkmSxfO73UZkiRJEuBMvyRJktR6hn5JkiSp5Qz9kiRJUssZ+iVJkqSW80beCdC/Zi19xy/udRmTbrU3L0uSJE1JzvRLkiRJLWfolyRJklrO0C9JkiS1nKFfkiRJajlDvyRJktRyhn5JkiSp5Xoa+pMcmeQjYxxjdZIdJur4Sf4+yYok/UmWJzn2oVUqSZIk9cZGPdOfZNoEj/9C4BjgeVU1F3gGsHYijylJkiSNt3EJ/UleneTKJD9K8skk05LcmeS0JCuTfCfJPkkuS/KzJC/t2v1xTfsNSU7oGvNrSZY1+y/oar8zyQeSXAPs19W+ZZJvJXn9YDU17UcluT7JlcAzhzm1fweOraqbAarq3qr61JgvmCRJkjSJxhz6kzwFOBx4ZlU9DXgAeBWwNXBJVc0B7gBOBp4LHAK8q2uIfYBDgd2BVySZ17S/tqr2AuYBRyfZvmnfGvhhVe1RVd9v2mYA/wV8oao+NVhNSWYBJ9EJ+/sDTx3m9HYDlo3wOixIsjTJ0gfu9sMASZIkTR2bjcMYfw3sBVyVBGBL4DfAn4BvN336gXur6r4k/UBf1/4XVdXvAJJ8lU4YX0on6B/S9HkcMBv4HZ0A/5UBNXwdOLWqzh2mpn2By6rqt83xvgg8eYznD0BVLQIWAUyfNbvGY0xJkiRpPIzH8p4An62qpzU/u1TVicB9VbU+/K4D7gWoqnX85ZuNgQG5khwEHAzsV1V7AMuBLZrn/1hVDwzYZwnwgjQJf4iaRmslnTcPkiRJ0kZrPEL/xcDfJnkUQJJHJnnCKPZ/brPPlsDL6QT4mcBtVXV3kl3p3EA7lHcCtwEfHaamHwLPSrJ9ks2BVwwz7inAaUke04zz8CSvG8W5SZIkST035tBfVT8G3g5cmORa4CJg1iiGuJLOcp1rga9U1VI6y4I2S3IdsBC4YgTjvAXYMsmpg9VUVbcAJwKX03lzcd0w5/ZN4CPAd5KsBK4Gth3FuUmSJEk9lz+vwNF4mT5rds064vRelzHpVi+c3+sSJEmSNhlJllXVvOF7buTf0y9JkiRpeOPx7T0bvSRv48Hr+79UVe/pRT2SJEnSeDL0A024N+BLkiSplVzeI0mSJLWcM/0TYO7OM1nqTa2SJEmaIpzplyRJklrO0C9JkiS1nKFfkiRJajlDvyRJktRy3sg7AfrXrKXv+MW9LmNQ/uVcSZKkTYsz/ZIkSVLLGfolSZKkljP0S5IkSS1n6JckSZJaztAvSZIktZyhX5IkSWq5jTr0JzkoyfkTfIxzk/wkyYokn0my+UQeT5IkSRpvG3XonyTnArsCc4Etgdf1thxJkiRpdKZc6E/Sl2RVM8N+XZIvJ9kqyd5JfpDkmiRXJtlmwH77JLk8yfKm3y5N+5ym/4+SXJtkdpKtkyxuxlqR5PDB6qmqb1YDuBJ47MReAUmSJGl8TdW/yLsL8A9VtSTJZ4B/At4AHF5VVyXZFrhnwD6rgAOq6v4kBwPvBQ5t9vtQVZ2b5OHANOBFwM1VNR8gyczhCmqW9bwGeMsgzy8AFgBM23bHUZ+wJEmSNFGm3Ex/46aqWtJsnwM8H7ilqq4CqKrbq+r+AfvMBL6UZAXwQWBO03458NYkxwFPqKp7gH7guUnel+SAqlo7gpo+Bnyvqv57Q09W1aKqmldV86ZtNex7CEmSJGnSTNXQXwMe3z6Cfd4NXFpVuwEvAbYAqKrPAy+l88nAN5M8p6quB/akE/5PTvLOoQZOcgKwI/AvozoLSZIkaQqYqqH/8Un2a7ZfCVwBzEqyN0CSbZIMXJo0E1jTbB+5vjHJXwE/q6ozgK8DuyfZCbi7qs4BTqPzBmCDkryOzicNf1dV68Z8ZpIkSdIkm6qh/yfAm5JcB2wHfBg4HPhwkmuAi2hm8rucCpySZDl/ea/CYcCKJD8CdgM+R+ebeK5s2k4ATh6ilk8AjwYub24GHvJTAUmSJGmqSedLaaaOJH3A+c0ynY3S9Fmza9YRp/e6jEGtXji/1yVIkiRpjJIsq6p5I+k7VWf6JUmSJI2TKfeVnVW1ms4ynEmV5DzgiQOaj6uqCya7FkmSJGk8TbnQ3ytVdUiva5AkSZImgst7JEmSpJZzpn8CzN15Jku9WVaSJElThDP9kiRJUssZ+iVJkqSWM/RLkiRJLWfolyRJklrOG3knQP+atfQdv7gnx/av7UqSJGkgZ/olSZKkljP0S5IkSS1n6JckSZJaztAvSZIktZyhX5IkSWo5Q78kSZLUcj0N/UmOTPKRMY6xOskOE3H8JLskuSzJj5Jcl2TRQ69UkiRJ6o2N+nv6k0yb4EOcAXywqr7eHG/uBB9PkiRJGnfjMtOf5NVJrmxmxD+ZZFqSO5OclmRlku8k2aeZNf9Zkpd27f64pv2GJCd0jfm1JMua/Rd0td+Z5ANJrgH262rfMsm3krx+sJqa9qOSXJ/kSuCZw5zaLOCX6x9UVf+YLpQkSZLUA2MO/UmeAhwOPLOqngY8ALwK2Bq4pKrmAHcAJwPPBQ4B3tU1xD7AocDuwCuSzGvaX1tVewHzgKOTbN+0bw38sKr2qKrvN20zgP8CvlBVnxqspiSzgJPohP39gacOc3ofBC5p3kz8c5JHDHEdFiRZmmTpA3evHWZYSZIkafKMx/Kevwb2Aq5KArAl8BvgT8C3mz79wL1VdV+SfqCva/+Lqup3AEm+SieML6UT9A9p+jwOmA38jk6A/8qAGr4OnFpV5w5T077AZVX12+Z4XwSePNiJVdVZSS4AXgC8DPjfSfaoqns30HcRsAhg+qzZNdiYkiRJ0mQbj+U9AT5bVU9rfnapqhOB+6pqffhdB9wLUFXr+Ms3GwMDciU5CDgY2K+q9gCWA1s0z/+xqh4YsM8S4AVpEv4QNY1aVd1cVZ+pqpcB9wO7PZRxJEmSpF4Zj9B/MfC3SR4FkOSRSZ4wiv2f2+yzJfByOgF+JnBbVd2dZFfgGcOM8U7gNuCjw9T0Q+BZSbZPsjnwiqEGTfKCph9JHgNsD6wZxblJkiRJPTfm0F9VPwbeDlyY5FrgIjo3wI7UlXSW61wLfKWqltJZFrRZkuuAhcAVIxjnLcCWSU4drKaqugU4EbiczpuL64YZ83nAiuam4QuAf6uqX43i3CRJkqSey59X4Gi8TJ81u2YdcXpPjr164fyeHFeSJEmTK8myqpo3fE//Iq8kSZLUehv1H+caL0nexoPX93+pqt7Ti3okSZKk8WToB5pwb8CXJElSK7m8R5IkSWo5Z/onwNydZ7LUG2olSZI0RTjTL0mSJLWcoV+SJElqOUO/JEmS1HKGfkmSJKnlvJF3AvSvWUvf8YvHbTz/yq4kSZLGwpl+SZIkqeUM/ZIkSVLLGfolSZKkljP0S5IkSS1n6JckSZJaztAvSZIktdykh/4kq5PsMNnH3ZAkxyTZapg+eyXpT/LTJGckyWTVJ0mSJI2HUYX+dLTp04FjgCFDP/Bx4PXA7ObnBRNdlCRJkjSehg3wSfqS/CTJ54AVwKeTLE2yMslJXf1WJzkpydXNzPiuTfv2SS5s+p8JpGuff0myovk5put4q5KcneT6JOcmOTjJkiQ3JNlniFpnJDmrOf61SQ5t2j8+sOYkRwM7AZcmuXSQ8WYB21bVFVVVwOeAlw93zSRJkqSpZKSz9rOBj1XVHOBfq2oesDvwrCS7d/W7tar2pDM7fmzTdgLw/Wbf84DHQ2fZDHAUsC/wDOD1SZ7e7PMk4APArs3PK4H9mzHfOkSd7wDWVtXcqtoduKRpf9vAmqvqDOBm4NlV9exBxtsZ+GXX4182bQ+SZEHzxmLpA3evHaJESZIkaXKNNPT/vKquaLYPS3I1sByYAzy1q99Xm3+XAX3N9oHAOQBVtRi4rWnfHzivqu6qqjubfQ9onruxqvqrah2wEri4mWnv7xp3Qw4GPrr+QVWtP9ZQNY+LqlpUVfOqat60rWaO9/CSJEnSQ7bZCPvdBZDkiXRm2/euqtuSnA1s0dXv3ubfB0Yx9obc27W9ruvxutGOO4Kah7IGeGzX48c2bZIkSdJGY7Q35W5L5w3A2iSPBl44gn2+R2d5DkleCGzXtP838PIkWyXZGjikaRuLi4A3rX+QZLthar4D2GawwarqFuD2JM9ovrXn74Gvj7FGSZIkaVKNKvRX1TV0lsisAj4PLBnBbicBByZZCfwN8ItmrKuBs4ErgR8CZ1bV8tHUswEnA9s1NwZfQ2e9/lA1LwK+PdiNvI1/BM4Efgr8D/CtMdYoSZIkTap0lsprPE2fNbtmHXH6uI23euH8cRtLkiRJ7ZBkWfNlNcNq03fuS5IkSdqAsdxs2zNJjgLeMqB5SVW9aUP9RzjmD4HpA5pfU1X9D3VMSZIkaSrYKEN/VZ0FnDXOY+47nuNJkiRJU4XLeyRJkqSW2yhn+qe6uTvPZKk330qSJGmKcKZfkiRJajlDvyRJktRyhn5JkiSp5Qz9kiRJUst5I+8E6F+zlr7jF495HP8SryRJksaDM/2SJElSyxn6JUmSpJYz9EuSJEktZ+iXJEmSWs7QL0mSJLWcoV+SJElquUkP/UlWJ9lhso+7IUmOSbLVMH3ek+SmJHdOVl2SJEnSeBpV6E9Hmz4dOAYYMvQD/wXsMwm1SJIkSRNi2ACfpC/JT5J8DlgBfDrJ0iQrk5zU1W91kpOSXJ2kP8muTfv2SS5s+p8JpGuff0myovk5put4q5KcneT6JOcmOTjJkiQ3JBk0gCeZkeSs5vjXJjm0af/4wJqTHA3sBFya5NLBxqyqK6rqluGukyRJkjRVjXTWfjbwsaqaA/xrVc0DdgeelWT3rn63VtWewMeBY5u2E4DvN/ueBzweIMlewFHAvsAzgNcneXqzz5OADwC7Nj+vBPZvxnzrEHW+A1hbVXOranfgkqb9bQNrrqozgJuBZ1fVs0d4HQaVZEHzxmLpA3evHetwkiRJ0rgZaej/eVVd0WwfluRqYDkwB3hqV7+vNv8uA/qa7QOBcwCqajFwW9O+P3BeVd1VVXc2+x7QPHdjVfVX1TpgJXBxVRXQ3zXuhhwMfHT9g6paf6yhah4XVbWoquZV1bxpW80c7+ElSZKkh2yzEfa7CyDJE+nMtu9dVbclORvYoqvfvc2/D4xi7A25t2t7XdfjdaMddwQ1S5IkSa022ptyt6XzBmBtkkcDLxzBPt+jszyHJC8Etmva/xt4eZKtkmwNHNK0jcVFwJvWP0iy3TA13wFsM8ZjSpIkSVPaqEJ/VV1DZ4nMKuDzwJIR7HYScGCSlcDfAL9oxroaOBu4EvghcGZVLR9NPRtwMrBdc2PwNXTW6w9V8yLg20PdyJvk1CS/BLZK8sskJ46xRkmSJGlSpbNUXuNp+qzZNeuI08c8zuqF88ehGkmSJLVRkmXNl9UMq03fuS9JkiRpA8Zys23PJDkKeMuA5iVV9aYN9R/hmD8Epg9ofk1V9T/UMSVJkqSpYKMM/VV1FnDWOI+573iOJ0mSJE0VLu+RJEmSWm6jnOmf6ubuPJOl3oQrSZKkKcKZfkmSJKnlDP2SJElSyxn6JUmSpJYz9EuSJEkt5428E6B/zVr6jl885nH8i7ySJEkaD870S5IkSS1n6JckSZJaztAvSZIktZyhX5IkSWo5Q78kSZLUcoZ+SZIkqeUmPfQnWZ1kh8k+7oYkOSbJVkM8v1WSxUlWJVmZZOFk1idJkiSNh1GF/nS06dOBY4BBQ3/j/VW1K/B04JlJXjjxZUmSJEnjZ9gAn6QvyU+SfA5YAXw6ydJm5vukrn6rk5yU5Ook/Ul2bdq3T3Jh0/9MIF37/EuSFc3PMV3HW5Xk7CTXJzk3ycFJliS5Ick+Q9Q6I8lZzfGvTXJo0/7xgTUnORrYCbg0yaUbGq+q7q6qS5vtPwFXA48d7ppJkiRJU8lIZ+1nAx+rqjnAv1bVPGB34FlJdu/qd2tV7Ql8HDi2aTsB+H6z73nA4wGS7AUcBewLPAN4fZKnN/s8CfgAsGvz80pg/2bMtw5R5zuAtVU1t6p2By5p2t82sOaqOgO4GXh2VT17uAuQ5BHAS4CLB3l+QfPGYukDd68dbjhJkiRp0ow09P+8qq5otg9LcjWwHJgDPLWr31ebf5cBfc32gcA5AFW1GLitad8fOK+q7qqqO5t9D2ieu7Gq/m97dx8rWV3fcfz9cbcuiHWzgtUVKLsk6wNEQVlBg0UbUUlUBMVoIgaf6hOmJk3qQzBWkCYUY2KMJrK24kMroq0Pa4xaCmIrkV3v8uAW6gquRN00URZEkHZld7/9Y87W8Xp379x77szcOfN+JSf3zG/O+c333O/93f3O2d9v7vaq2g/cBlxbVQVs7+t3LmcCHzvwoKoOvNahYp5XkpXAVcBHqmrnXMdU1aaq2lhVG1c8YvVCupckSZKGauWAx/0GIMl6enfbn1FV9yb5FHBY33F7mq/7FtD3XPb07e/ve7x/of0OEPMgNgF3VNWHF3ieJEmSNHYLXZT7KHpvAO5L8lhgkEWt/05veg7NItg1Tft/AOc0n5BzBHBu09bGNcCFBx4kWTNPzPcDf3yoDpNcCqymt+hXkiRJmjgLKvqr6lZ6U2R+CHwOuGGA0y4GzkhyG/Ay4KdNXzcBnwK2AluAv6+qmxcSzxwuBdY0C4NvpTdf/1AxbwK+ebCFvEmOAS6iNx3opiS3JHljyxglSZKkkUpvqryW0qq1G2rtBe1nAt112YuWIBpJkiR1UZJtzYfVzKtLn7kvSZIkaQ5tFtuOTZLXAe+Y1XxDVV041/ED9rkFWDWr+TVVtX2xfUqSJEnLwUQW/VV1JXDlEvd52lL2J0mSJC0XTu+RJEmSOm4i7/Qvd085ejUzLsKVJEnSMuGdfkmSJKnjLPolSZKkjrPolyRJkjrOol+SJEnqOBfyDsH2Xfex7t1fP+Qx/rVdSZIkjYp3+iVJkqSOs+iXJEmSOs6iX5IkSeo4i35JkiSp4yz6JUmSpI6z6JckSZI6bmxFf5LXJvloyz7uSnLUsF4/yZuS/LDZZpI8d1GBSpIkSWM0sZ/Tn2TFkPt/MfBm4NlVdXeSpwObk5xWVbuG+dqSJEnSUmp9pz/J+Um2JrklyRVJViR5IMkHk9yW5N+SnJrk+iQ7k5zdd/qxTfsdSf6mr8+vJNnWnP+mvvYHknwoya3As/raD0/yjSR/cbCYmvbXJflRkq3A6fNc2ruAv66quwGq6ibgSuDClt8ySZIkaaRaFf1Jngy8Eji9qk4G9gGvBo4ArquqE4H7gUuB5wPnApf0dXEq8HLgqcArkmxs2l9fVacAG4G/THJk034EsKWqTqqq7zZtjwS+BlxVVZ84WExJ1gIX0yv2nw2cMM/lnQhsm9U2c7DzmqlAM0lm9j143zxdS5IkSaPTdnrP84BTgO8nATgc+AXwW+CbzTHbgT1V9VCS7cC6vvOvqardAEm+RK8Yn6FX6J/bHHMssAHYTa+A/5dZMXwVuLyq/mmemE4Drq+qXzavdzXwhJbX//+qahOwCWDV2g21VP1KkiRJbbWd3hPg01V1crM9sareDzxUVQcK3/3AHoCq2s/vv9GYXRxXs1j2TOBZVXUScDNwWPP8/1bVvlnn3ACclabCP0RMC3U7vTcP/U6h96ZEkiRJmhhti/5rgfOS/AlAkkcnOW4B5z+/Oedw4Bx6Bfxq4N6qejDJk4BnztPH+4B7gY/NE9MW4DlJjkzyR8Ar5un3cuDvDkwtSnIyvelJVyzg+iRJkqSxazW9p6puT/Je4F+TPAx4iIUtdN1Kb7rOMcA/VtVMMwXoLUn+C9gB3DhAP+8APpnk8qp651wxVdWNSd4PfA/4FXDLPNe2OcnjgRuSrAQeB5x0YHqQJEmSNCnyu1k4Opim6L+S3v+MnF/zfNNWrd1Qay/48CH7vOuyFy1dgJIkSZo6SbZV1cb5j5zgz+kfparaC7xm3HFIkiRJizH1RX+Si/jD+f1frKq/HUc8kiRJ0lKb+qK/Ke4t8CVJktRZrf8iryRJkqTlberv9A/DU45ezYwLdSVJkrRMeKdfkiRJ6jiLfkmSJKnjLPolSZKkjrPolyRJkjrOol+SJEnqOIt+SZIkqeMs+iVJkqSOs+iXJEmSOs6iX5IkSeo4i35JkiSp4yz6JUmSpI6z6JckSZI6zqJfkiRJ6jiLfkmSJKnjLPolSZKkjrPolyRJkjrOol+SJEnqOIt+SZIkqeMs+iVJkqSOS1WNO4bOSXI/sGPccWikjgLuHncQGilzPn3M+fQx59Nn0nJ+XFU9ZpADVw47kim1o6o2jjsIjU6SGXM+Xcz59DHn08ecT58u59zpPZIkSVLHWfRLkiRJHWfRPxybxh2ARs6cTx9zPn3M+fQx59Onszl3Ia8kSZLUcd7plyRJkjrOon8BkpyVZEeSO5O8e47nVyW5unl+S5J1fc+9p2nfkeSFo4xbi7fYnCdZl+R/ktzSbB8fdexanAFyfkaSm5LsTXLerOcuSHJHs10wuqjVRsuc7+sb55tHF7XaGCDnf5Xk9iQ/SHJtkuP6nnOcT6CWOe/GOK8qtwE2YAXwY+B44OHArcAJs455G/DxZv9VwNXN/gnN8auA9U0/K8Z9TW5Dzfk64D/HfQ1uQ8n5OuCpwGeA8/raHw3sbL6uafbXjPua3IaX8+a5B8Z9DW5DyfmfA49o9t/a97vdcT6BW5ucN487Mc690z+4U4E7q2pnVf0W+Dzw0lnHvBT4dLP/z8DzkqRp/3xV7amqnwB3Nv1peWuTc02meXNeVXdV1Q+A/bPOfSFwTVXdU1X3AtcAZ40iaLXSJueaTIPk/NtV9WDz8EbgmGbfcT6Z2uS8Myz6B3c08LO+xz9v2uY8pqr2AvcBRw54rpafNjkHWJ/k5iTfSfJnww5WS6LNWHWcT6a2eTssyUySG5Ocs7ShaUgWmvM3AN9Y5LlaHtrkHDoyzv2LvNJw/Dfwp1W1O8kpwFeSnFhVvx53YJKW1HFVtSvJ8cB1SbZX1Y/HHZSWRpLzgY3Ac8Ydi0bjIDnvxDj3Tv/gdgHH9j0+pmmb85gkK4HVwO4Bz9Xys+icN1O5dgNU1TZ6cwmfMPSI1Vabseo4n0yt8lZVu5qvO4HrgactZXAaioFynuRM4CLg7Kras5Bztey0yXlnxrlF/+C+D2xIsj7Jw+kt2py9gnszcGAl/3nAddVbAbIZeFXzSS/rgQ3A1hHFrcVbdM6TPCbJCoDmzsAGegu+tLwNkvOD+RbwgiRrkqwBXtC0aXlbdM6bXK9q9o8CTgduH1qkWirz5jzJ04Ar6BV/v+h7ynE+mRad8y6Nc6f3DKiq9iZ5O73BvQL4ZFXdluQSYKaqNgP/AHw2yZ3APfR+qGiO+wK9H5K9wIVVtW8sF6KBtck5cAZwSZKH6C3+e0tV3TP6q9BCDJLzJM8AvkzvkztekuTiqjqxqu5J8gF6/7gAXGLOl782OQeeDFyRZD+9m2iXVdVEFgPTZMDf7R8EHgl8sflshp9W1dmO88nUJud0aJz7F3klSZKkjnN6jyRJktRxFv2SJElSx1n0S5IkSR1n0S9JkiR1nEW/JEmS1HEW/ZIkSVLHWfRLkiRJHWfRL0mSJHXc/wHEXWeS2n1U+AAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 864x576 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "ohe = (rf.named_steps['preprocess']\n",
    "         .named_transformers_['cat']\n",
    "         .named_steps['onehot'])\n",
    "feature_names = []\n",
    "for col, cats in zip(categorical_columns, ohe.categories_):\n",
    "    for cat in cats:\n",
    "        feature_names.append(\"{}_{}\".format(col, cat))\n",
    "feature_names = np.array(feature_names + numerical_columns)\n",
    "\n",
    "tree_feature_importances = (\n",
    "    rf.named_steps['classifier'].feature_importances_)\n",
    "sorted_idx = tree_feature_importances.argsort()\n",
    "\n",
    "y_ticks = np.arange(0, len(feature_names))\n",
    "_, ax = plt.subplots(figsize=(12, 8))\n",
    "ax.barh(y_ticks, tree_feature_importances[sorted_idx])\n",
    "ax.set_yticklabels(feature_names[sorted_idx])\n",
    "ax.set_yticks(y_ticks)\n",
    "ax.set_title(\"Random Forest Feature Importances\");"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 864x576 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "permute_importance = permutation_importance(rf, X_train, y_train, n_rounds=30,\n",
    "                                            random_state=42)\n",
    "permute_importance_mean = np.mean(permute_importance, axis=-1)\n",
    "sorted_idx = permute_importance_mean.argsort()\n",
    "\n",
    "_, ax = plt.subplots(figsize=(12, 8))\n",
    "ax.boxplot(permute_importance[sorted_idx].T,\n",
    "           vert=False, labels=X_test.columns[sorted_idx])\n",
    "ax.vlines(0, 0, X_test.shape[1] + 1, linestyles='dashed', alpha=0.5)\n",
    "ax.set_xlabel(\"baseline score - score on permutated variable\")\n",
    "ax.set_title(\"Permutation Importances (training set)\");"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 864x576 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "permute_importance = permutation_importance(rf, X_test, y_test, n_rounds=30,\n",
    "                                            random_state=0)\n",
    "permute_importance_mean = np.mean(permute_importance, axis=-1)\n",
    "sorted_idx = permute_importance_mean.argsort()\n",
    "\n",
    "_, ax = plt.subplots(figsize=(12, 8))\n",
    "ax.boxplot(permute_importance[sorted_idx].T,\n",
    "           vert=False, labels=X_test.columns[sorted_idx])\n",
    "ax.vlines(0, 0, X_test.shape[1] + 1, linestyles='dashed', alpha=0.5)\n",
    "ax.set_xlabel(\"baseline score - score on permutated variable\")\n",
    "ax.set_title(\"Permutation Importances (test set)\");"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
